@claude-flow/memory 3.0.0-alpha.16 → 3.0.0-alpha.18

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 (67) hide show
  1. package/README.md +60 -0
  2. package/dist/agentdb-adapter.d.ts +60 -1
  3. package/dist/agentdb-adapter.d.ts.map +1 -1
  4. package/dist/agentdb-adapter.js +253 -9
  5. package/dist/agentdb-adapter.js.map +1 -1
  6. package/dist/consolidator.d.ts +96 -0
  7. package/dist/consolidator.d.ts.map +1 -0
  8. package/dist/consolidator.js +209 -0
  9. package/dist/consolidator.js.map +1 -0
  10. package/dist/consolidator.test.d.ts +17 -0
  11. package/dist/consolidator.test.d.ts.map +1 -0
  12. package/dist/consolidator.test.js +239 -0
  13. package/dist/consolidator.test.js.map +1 -0
  14. package/dist/controller-registry.d.ts +7 -0
  15. package/dist/controller-registry.d.ts.map +1 -1
  16. package/dist/controller-registry.js +92 -5
  17. package/dist/controller-registry.js.map +1 -1
  18. package/dist/database-provider.d.ts +13 -2
  19. package/dist/database-provider.d.ts.map +1 -1
  20. package/dist/database-provider.js +37 -2
  21. package/dist/database-provider.js.map +1 -1
  22. package/dist/database-provider.test.js +41 -0
  23. package/dist/database-provider.test.js.map +1 -1
  24. package/dist/fts5.test.d.ts +13 -0
  25. package/dist/fts5.test.d.ts.map +1 -0
  26. package/dist/fts5.test.js +144 -0
  27. package/dist/fts5.test.js.map +1 -0
  28. package/dist/graceful-retrieval.test.d.ts +14 -0
  29. package/dist/graceful-retrieval.test.d.ts.map +1 -0
  30. package/dist/graceful-retrieval.test.js +144 -0
  31. package/dist/graceful-retrieval.test.js.map +1 -0
  32. package/dist/hnsw-index.d.ts +51 -0
  33. package/dist/hnsw-index.d.ts.map +1 -1
  34. package/dist/hnsw-index.js +217 -0
  35. package/dist/hnsw-index.js.map +1 -1
  36. package/dist/hnsw-persistence.test.d.ts +13 -0
  37. package/dist/hnsw-persistence.test.d.ts.map +1 -0
  38. package/dist/hnsw-persistence.test.js +208 -0
  39. package/dist/hnsw-persistence.test.js.map +1 -0
  40. package/dist/index.d.ts +149 -13
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +260 -32
  43. package/dist/index.js.map +1 -1
  44. package/dist/index.test.d.ts +10 -0
  45. package/dist/index.test.d.ts.map +1 -0
  46. package/dist/index.test.js +71 -0
  47. package/dist/index.test.js.map +1 -0
  48. package/dist/rvf-backend.d.ts.map +1 -1
  49. package/dist/rvf-backend.js +155 -1
  50. package/dist/rvf-backend.js.map +1 -1
  51. package/dist/smart-retrieval.d.ts +24 -0
  52. package/dist/smart-retrieval.d.ts.map +1 -1
  53. package/dist/smart-retrieval.js +19 -0
  54. package/dist/smart-retrieval.js.map +1 -1
  55. package/dist/sqlite-backend.d.ts +10 -0
  56. package/dist/sqlite-backend.d.ts.map +1 -1
  57. package/dist/sqlite-backend.js +87 -0
  58. package/dist/sqlite-backend.js.map +1 -1
  59. package/dist/sqljs-backend.d.ts +9 -0
  60. package/dist/sqljs-backend.d.ts.map +1 -1
  61. package/dist/sqljs-backend.js +87 -0
  62. package/dist/sqljs-backend.js.map +1 -1
  63. package/package.json +4 -4
  64. package/dist/hnsw-lite.d.ts +0 -23
  65. package/dist/hnsw-lite.d.ts.map +0 -1
  66. package/dist/hnsw-lite.js +0 -168
  67. package/dist/hnsw-lite.js.map +0 -1
package/README.md CHANGED
@@ -28,6 +28,66 @@
28
28
  npm install @claude-flow/memory
29
29
  ```
30
30
 
31
+ ## Standalone use (without the Ruflo CLI)
32
+
33
+ This package works on its own — you don't need `@claude-flow/cli` or the
34
+ full Ruflo install. Use it any time you want HNSW vector search, an
35
+ AgentDB façade, or the v3 controller registry from your own app.
36
+
37
+ Two recipes that exercise the most-installed surface:
38
+
39
+ ### Recipe 1 — HNSW index with built-in quantization (no other deps)
40
+
41
+ ```typescript
42
+ // recipe.mjs
43
+ import { HNSWIndex } from '@claude-flow/memory';
44
+
45
+ const index = new HNSWIndex({
46
+ dimensions: 8,
47
+ M: 16,
48
+ efConstruction: 200,
49
+ metric: 'cosine',
50
+ });
51
+
52
+ // Add a few vectors
53
+ await index.addPoint('doc-a', new Float32Array([1, 0, 0, 0, 0, 0, 0, 0]));
54
+ await index.addPoint('doc-b', new Float32Array([0.9, 0.1, 0, 0, 0, 0, 0, 0]));
55
+ await index.addPoint('doc-c', new Float32Array([0, 1, 0, 0, 0, 0, 0, 0]));
56
+
57
+ // Search — top 2 nearest to "doc-a"-shaped query
58
+ const hits = await index.search(new Float32Array([1, 0, 0, 0, 0, 0, 0, 0]), 2);
59
+ console.log(hits); // [{ id: 'doc-a', distance: 0 }, { id: 'doc-b', distance: ~0.005 }]
60
+ ```
61
+
62
+ ### Recipe 2 — Drive the controller registry against your own AgentDB
63
+
64
+ The registry coordinates 15+ memory controllers (learning bridge, memory
65
+ graph, tiered cache, vector backend, etc.) on top of an AgentDB instance
66
+ you own. Useful when you already have an AgentDB lifecycle and just
67
+ want the v3 governance layer (issue #2019 added the `agentdb` injection
68
+ field that makes this clean).
69
+
70
+ ```typescript
71
+ import { ControllerRegistry } from '@claude-flow/memory';
72
+ import { AgentDB } from 'agentdb';
73
+
74
+ const agentdb = new AgentDB({ dbPath: ':memory:' });
75
+ await agentdb.initialize();
76
+
77
+ const registry = new ControllerRegistry();
78
+ await registry.initialize({ agentdb });
79
+
80
+ // Now everything backed by AgentDB is reachable through the registry
81
+ const reflexion = registry.get('reflexion'); // ReflexionMemory
82
+ const vectorBackend = registry.get('vectorBackend'); // live vector backend
83
+ const enabled = registry.isEnabled('skills'); // true
84
+
85
+ const health = await registry.healthCheck();
86
+ console.log(`${health.activeControllers}/${health.controllers.length} controllers active`);
87
+
88
+ await registry.shutdown();
89
+ ```
90
+
31
91
  ## Quick Start
32
92
 
33
93
  ```typescript
@@ -144,9 +144,27 @@ export declare class AgentDBAdapter extends EventEmitter implements IMemoryBacke
144
144
  */
145
145
  storeEntry(input: MemoryEntryInput): Promise<MemoryEntry>;
146
146
  /**
147
- * Semantic search by content string
147
+ * Semantic search by content string.
148
+ *
149
+ * ADR-125 Phase 5 — degrades gracefully when the embedding generator is
150
+ * unavailable. Instead of throwing, emits `health:embedder` with
151
+ * `status: 'degraded'` and falls back to {@link searchKeyword} so the
152
+ * memory subsystem remains usable when `@claude-flow/embeddings` is
153
+ * unreachable (per ADR-124's lazy/degrade posture).
148
154
  */
149
155
  semanticSearch(content: string, k?: number, threshold?: number): Promise<SearchResult[]>;
156
+ /**
157
+ * Keyword search — in-memory token-overlap ranking against the
158
+ * `entries` map. Used as a fallback when the embedder is unavailable
159
+ * and as the "sparse" arm of the hybridSearch controller.
160
+ *
161
+ * Falls back to the SqlJs / SQLite backend FTS5 path when a backend is
162
+ * wired that exposes a `searchKeyword` method. The AgentDBAdapter itself
163
+ * keeps the implementation cheap and dependency-free.
164
+ *
165
+ * @internal ADR-125 Phase 5
166
+ */
167
+ searchKeyword(query: string, options?: SearchOptions): Promise<SearchResult[]>;
150
168
  private queryByPrefix;
151
169
  private queryByTags;
152
170
  private querySemanticWithFilters;
@@ -158,8 +176,49 @@ export declare class AgentDBAdapter extends EventEmitter implements IMemoryBacke
158
176
  private checkStorageHealth;
159
177
  private checkIndexHealth;
160
178
  private checkCacheHealth;
179
+ /**
180
+ * Path to the HNSW snapshot sidecar.
181
+ * Convention: `<persistencePath>.hnsw`
182
+ */
183
+ private getHnswSidecarPath;
184
+ /**
185
+ * Path to the in-memory Maps (entries/namespaceIndex/keyIndex/tagIndex) sidecar.
186
+ * Convention: `<persistencePath>.meta.json`
187
+ */
188
+ private getMetaSidecarPath;
189
+ /**
190
+ * Persist a snapshot of the in-memory state to disk.
191
+ *
192
+ * Writes two sidecar files alongside `persistencePath`:
193
+ * - `<persistencePath>.hnsw` — binary HNSW snapshot via {@link HNSWIndex.serialize}
194
+ * - `<persistencePath>.meta.json` — entries + indices in stable JSON
195
+ *
196
+ * Public so {@link MemoryService} can trigger periodic snapshots (ADR-125 Phase 3).
197
+ */
198
+ saveSnapshot(): Promise<void>;
199
+ /**
200
+ * ADR-125 Phase 3 — real persistence implementation.
201
+ *
202
+ * Loads two sidecar files alongside `persistencePath` (when both exist):
203
+ * - `<persistencePath>.hnsw` — binary HNSW snapshot
204
+ * - `<persistencePath>.meta.json` — entries + namespaceIndex + keyIndex + tagIndex
205
+ *
206
+ * Emits `persistence:loaded` with `{ status: 'restored' | 'fresh' | 'corrupt' }`.
207
+ * Falls back to a fresh state on any deserialize / IO error so callers don't throw.
208
+ */
161
209
  private loadFromDisk;
210
+ /**
211
+ * ADR-125 Phase 3 — real snapshot implementation.
212
+ *
213
+ * Writes both sidecars atomically via a temp-file-and-rename dance so a
214
+ * crash mid-write doesn't leave half-baked state on disk.
215
+ */
162
216
  private saveToDisk;
217
+ /**
218
+ * Build a stable, diff-friendly JSON representation of the in-memory Maps.
219
+ * Keys are sorted; embeddings are serialized as plain number arrays.
220
+ */
221
+ private buildPersistedMeta;
163
222
  }
164
223
  export default AgentDBAdapter;
165
224
  //# sourceMappingURL=agentdb-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentdb-adapter.d.ts","sourceRoot":"","sources":["../src/agentdb-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentdb-adapter.d.ts","sourceRoot":"","sources":["../src/agentdb-adapter.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@
7
7
  * @module v3/memory/agentdb-adapter
8
8
  */
9
9
  import { EventEmitter } from 'node:events';
10
+ import * as fs from 'node:fs';
11
+ import * as path from 'node:path';
10
12
  import { createDefaultEntry, } from './types.js';
11
13
  import { HNSWIndex } from './hnsw-index.js';
12
14
  import { CacheManager } from './cache-manager.js';
@@ -577,14 +579,70 @@ export class AgentDBAdapter extends EventEmitter {
577
579
  return entry;
578
580
  }
579
581
  /**
580
- * Semantic search by content string
582
+ * Semantic search by content string.
583
+ *
584
+ * ADR-125 Phase 5 — degrades gracefully when the embedding generator is
585
+ * unavailable. Instead of throwing, emits `health:embedder` with
586
+ * `status: 'degraded'` and falls back to {@link searchKeyword} so the
587
+ * memory subsystem remains usable when `@claude-flow/embeddings` is
588
+ * unreachable (per ADR-124's lazy/degrade posture).
581
589
  */
582
590
  async semanticSearch(content, k = 10, threshold) {
583
591
  if (!this.config.embeddingGenerator) {
584
- throw new Error('Embedding generator not configured');
592
+ this.emit('health:embedder', { status: 'degraded', reason: 'no-generator' });
593
+ return this.searchKeyword(content, { k, threshold });
594
+ }
595
+ try {
596
+ const embedding = await this.config.embeddingGenerator(content);
597
+ return this.search(embedding, { k, threshold });
598
+ }
599
+ catch (err) {
600
+ this.emit('health:embedder', {
601
+ status: 'degraded',
602
+ reason: err instanceof Error ? err.message : String(err),
603
+ });
604
+ return this.searchKeyword(content, { k, threshold });
585
605
  }
586
- const embedding = await this.config.embeddingGenerator(content);
587
- return this.search(embedding, { k, threshold });
606
+ }
607
+ /**
608
+ * Keyword search — in-memory token-overlap ranking against the
609
+ * `entries` map. Used as a fallback when the embedder is unavailable
610
+ * and as the "sparse" arm of the hybridSearch controller.
611
+ *
612
+ * Falls back to the SqlJs / SQLite backend FTS5 path when a backend is
613
+ * wired that exposes a `searchKeyword` method. The AgentDBAdapter itself
614
+ * keeps the implementation cheap and dependency-free.
615
+ *
616
+ * @internal ADR-125 Phase 5
617
+ */
618
+ async searchKeyword(query, options = { k: 10 }) {
619
+ const k = options.k ?? 10;
620
+ const tokens = tokenize(query);
621
+ if (tokens.size === 0)
622
+ return [];
623
+ const scored = [];
624
+ for (const entry of this.entries.values()) {
625
+ const entryTokens = tokenize(entry.content);
626
+ let overlap = 0;
627
+ for (const t of tokens)
628
+ if (entryTokens.has(t))
629
+ overlap += 1;
630
+ if (overlap === 0)
631
+ continue;
632
+ // Simple token-overlap ratio in [0,1]. Adequate for fallback ranking.
633
+ const score = overlap / Math.max(tokens.size, 1);
634
+ if (options.threshold && score < options.threshold)
635
+ continue;
636
+ // Apply additional filters if provided
637
+ if (options.filters) {
638
+ const filtered = this.applyFilters([entry], options.filters);
639
+ if (filtered.length === 0)
640
+ continue;
641
+ }
642
+ scored.push({ entry, score, distance: 1 - score });
643
+ }
644
+ scored.sort((a, b) => b.score - a.score);
645
+ return scored.slice(0, k);
588
646
  }
589
647
  // ===== Private Methods =====
590
648
  queryByPrefix(query) {
@@ -792,15 +850,201 @@ export class AgentDBAdapter extends EventEmitter {
792
850
  }
793
851
  return { status: 'healthy', latency: 0 };
794
852
  }
853
+ /**
854
+ * Path to the HNSW snapshot sidecar.
855
+ * Convention: `<persistencePath>.hnsw`
856
+ */
857
+ getHnswSidecarPath() {
858
+ if (!this.config.persistencePath)
859
+ return null;
860
+ return `${this.config.persistencePath}.hnsw`;
861
+ }
862
+ /**
863
+ * Path to the in-memory Maps (entries/namespaceIndex/keyIndex/tagIndex) sidecar.
864
+ * Convention: `<persistencePath>.meta.json`
865
+ */
866
+ getMetaSidecarPath() {
867
+ if (!this.config.persistencePath)
868
+ return null;
869
+ return `${this.config.persistencePath}.meta.json`;
870
+ }
871
+ /**
872
+ * Persist a snapshot of the in-memory state to disk.
873
+ *
874
+ * Writes two sidecar files alongside `persistencePath`:
875
+ * - `<persistencePath>.hnsw` — binary HNSW snapshot via {@link HNSWIndex.serialize}
876
+ * - `<persistencePath>.meta.json` — entries + indices in stable JSON
877
+ *
878
+ * Public so {@link MemoryService} can trigger periodic snapshots (ADR-125 Phase 3).
879
+ */
880
+ async saveSnapshot() {
881
+ await this.saveToDisk();
882
+ }
883
+ /**
884
+ * ADR-125 Phase 3 — real persistence implementation.
885
+ *
886
+ * Loads two sidecar files alongside `persistencePath` (when both exist):
887
+ * - `<persistencePath>.hnsw` — binary HNSW snapshot
888
+ * - `<persistencePath>.meta.json` — entries + namespaceIndex + keyIndex + tagIndex
889
+ *
890
+ * Emits `persistence:loaded` with `{ status: 'restored' | 'fresh' | 'corrupt' }`.
891
+ * Falls back to a fresh state on any deserialize / IO error so callers don't throw.
892
+ */
795
893
  async loadFromDisk() {
796
- // Placeholder for persistence implementation
797
- // Would use SQLite or file-based storage
798
- this.emit('persistence:loaded');
894
+ const hnswPath = this.getHnswSidecarPath();
895
+ const metaPath = this.getMetaSidecarPath();
896
+ if (!hnswPath || !metaPath) {
897
+ this.emit('persistence:loaded', { status: 'fresh', reason: 'no-path' });
898
+ return;
899
+ }
900
+ let hnswExists = false;
901
+ let metaExists = false;
902
+ try {
903
+ hnswExists = fs.existsSync(hnswPath);
904
+ }
905
+ catch { /* ignore */ }
906
+ try {
907
+ metaExists = fs.existsSync(metaPath);
908
+ }
909
+ catch { /* ignore */ }
910
+ if (!hnswExists || !metaExists) {
911
+ this.emit('persistence:loaded', { status: 'fresh', reason: 'no-sidecar' });
912
+ return;
913
+ }
914
+ try {
915
+ const metaRaw = fs.readFileSync(metaPath, 'utf-8');
916
+ const meta = JSON.parse(metaRaw);
917
+ // Restore entries (rehydrate Float32Array embeddings if present)
918
+ this.entries.clear();
919
+ this.namespaceIndex.clear();
920
+ this.keyIndex.clear();
921
+ this.tagIndex.clear();
922
+ for (const persisted of meta.entries) {
923
+ const entry = {
924
+ ...persisted,
925
+ embedding: persisted.embedding
926
+ ? Float32Array.from(persisted.embedding)
927
+ : undefined,
928
+ };
929
+ this.entries.set(entry.id, entry);
930
+ }
931
+ for (const [ns, ids] of Object.entries(meta.namespaceIndex)) {
932
+ this.namespaceIndex.set(ns, new Set(ids));
933
+ }
934
+ for (const [key, id] of Object.entries(meta.keyIndex)) {
935
+ this.keyIndex.set(key, id);
936
+ }
937
+ for (const [tag, ids] of Object.entries(meta.tagIndex)) {
938
+ this.tagIndex.set(tag, new Set(ids));
939
+ }
940
+ // Restore HNSW
941
+ const hnswBuf = fs.readFileSync(hnswPath);
942
+ const restored = HNSWIndex.deserialize(hnswBuf);
943
+ // Swap pointers — preserves forwarded events because we only re-listen
944
+ // when the adapter is reconstructed (which happens on a fresh instance).
945
+ this.index = restored;
946
+ // Re-forward HNSW events
947
+ this.index.on('point:added', (data) => this.emit('index:added', data));
948
+ this.emit('persistence:loaded', { status: 'restored', count: this.entries.size });
949
+ }
950
+ catch (err) {
951
+ // Corrupt sidecar — start fresh, leave existing files in place for
952
+ // operator inspection.
953
+ this.entries.clear();
954
+ this.namespaceIndex.clear();
955
+ this.keyIndex.clear();
956
+ this.tagIndex.clear();
957
+ this.emit('persistence:loaded', {
958
+ status: 'corrupt',
959
+ reason: err instanceof Error ? err.message : String(err),
960
+ });
961
+ }
799
962
  }
963
+ /**
964
+ * ADR-125 Phase 3 — real snapshot implementation.
965
+ *
966
+ * Writes both sidecars atomically via a temp-file-and-rename dance so a
967
+ * crash mid-write doesn't leave half-baked state on disk.
968
+ */
800
969
  async saveToDisk() {
801
- // Placeholder for persistence implementation
802
- this.emit('persistence:saved');
970
+ const hnswPath = this.getHnswSidecarPath();
971
+ const metaPath = this.getMetaSidecarPath();
972
+ if (!hnswPath || !metaPath) {
973
+ this.emit('persistence:saved', { status: 'skipped', reason: 'no-path' });
974
+ return;
975
+ }
976
+ try {
977
+ // Ensure parent dir exists
978
+ const dir = path.dirname(hnswPath);
979
+ if (!fs.existsSync(dir)) {
980
+ fs.mkdirSync(dir, { recursive: true });
981
+ }
982
+ // Build stable JSON representation
983
+ const meta = this.buildPersistedMeta();
984
+ const metaText = JSON.stringify(meta);
985
+ // Build HNSW snapshot
986
+ const hnswBuf = this.index.serialize();
987
+ // Atomic write via temp + rename
988
+ const hnswTmp = `${hnswPath}.tmp`;
989
+ const metaTmp = `${metaPath}.tmp`;
990
+ fs.writeFileSync(hnswTmp, hnswBuf);
991
+ fs.writeFileSync(metaTmp, metaText);
992
+ fs.renameSync(hnswTmp, hnswPath);
993
+ fs.renameSync(metaTmp, metaPath);
994
+ this.emit('persistence:saved', {
995
+ status: 'ok',
996
+ bytes: hnswBuf.length + Buffer.byteLength(metaText, 'utf-8'),
997
+ });
998
+ }
999
+ catch (err) {
1000
+ this.emit('persistence:saved', {
1001
+ status: 'failed',
1002
+ reason: err instanceof Error ? err.message : String(err),
1003
+ });
1004
+ }
803
1005
  }
1006
+ /**
1007
+ * Build a stable, diff-friendly JSON representation of the in-memory Maps.
1008
+ * Keys are sorted; embeddings are serialized as plain number arrays.
1009
+ */
1010
+ buildPersistedMeta() {
1011
+ const entriesArr = [...this.entries.values()].sort((a, b) => a.id.localeCompare(b.id));
1012
+ const persistedEntries = entriesArr.map((e) => ({
1013
+ ...e,
1014
+ embedding: e.embedding ? Array.from(e.embedding) : undefined,
1015
+ }));
1016
+ const namespaceIndex = {};
1017
+ for (const ns of [...this.namespaceIndex.keys()].sort()) {
1018
+ namespaceIndex[ns] = [...this.namespaceIndex.get(ns)].sort();
1019
+ }
1020
+ const keyIndex = {};
1021
+ for (const k of [...this.keyIndex.keys()].sort()) {
1022
+ keyIndex[k] = this.keyIndex.get(k);
1023
+ }
1024
+ const tagIndex = {};
1025
+ for (const t of [...this.tagIndex.keys()].sort()) {
1026
+ tagIndex[t] = [...this.tagIndex.get(t)].sort();
1027
+ }
1028
+ return { version: 1, entries: persistedEntries, namespaceIndex, keyIndex, tagIndex };
1029
+ }
1030
+ }
1031
+ // ADR-125 Phase 5 — minimal tokenizer for the in-memory keyword fallback.
1032
+ // Mirrors the shape used in `smart-retrieval.ts` but is duplicated here so the
1033
+ // adapter has no dependency on the retrieval layer.
1034
+ const STOPWORDS = new Set([
1035
+ 'the', 'and', 'for', 'are', 'but', 'not', 'you', 'all', 'any', 'can',
1036
+ 'her', 'was', 'one', 'our', 'out', 'day', 'get', 'has', 'him', 'his',
1037
+ 'how', 'man', 'new', 'now', 'old', 'see', 'two', 'way', 'who', 'boy',
1038
+ 'did', 'its', 'let', 'put', 'say', 'she', 'too', 'use', 'with', 'this',
1039
+ 'that', 'have', 'from', 'they', 'will', 'been', 'were', 'what', 'when',
1040
+ 'your',
1041
+ ]);
1042
+ function tokenize(text) {
1043
+ return new Set(text
1044
+ .toLowerCase()
1045
+ .replace(/[^\w\s]/g, ' ')
1046
+ .split(/\s+/)
1047
+ .filter((t) => t.length > 2 && !STOPWORDS.has(t)));
804
1048
  }
805
1049
  export default AgentDBAdapter;
806
1050
  //# sourceMappingURL=agentdb-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentdb-adapter.js","sourceRoot":"","sources":["../src/agentdb-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentdb-adapter.js","sourceRoot":"","sources":["../src/agentdb-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAcL,kBAAkB,GAGnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAwClD;;GAEG;AACH,MAAM,cAAc,GAAyB;IAC3C,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,MAAM,EAAE,YAAY;IAC9B,KAAK,EAAE,EAAE;IACT,kBAAkB,EAAE,GAAG;IACvB,gBAAgB,EAAE,SAAS;IAC3B,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,MAAM,CAAuB;IAC7B,OAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC9C,KAAK,CAAY;IACjB,KAAK,CAA4B;IACjC,cAAc,GAA6B,IAAI,GAAG,EAAE,CAAC;IACrD,QAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,sBAAsB;IACjE,QAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC/C,WAAW,GAAY,KAAK,CAAC;IAErC,uBAAuB;IACf,KAAK,GAAG;QACd,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,YAAY,SAAwC,EAAE;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAE/C,wBAAwB;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC;YACzB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACpB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAC9C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YACnC,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAc;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,iCAAiC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,0BAA0B;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,0DAA0D;QAC1D,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACxE,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAElC,yBAAyB;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElD,mBAAmB;QACnB,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAEzC,mBAAmB;QACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,GAAW;QAC3C,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAyB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,gBAAgB;QAChB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,0CAA0C;YAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACnC,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtE,WAAW;gBACX,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,mBAAmB;YACnB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAExB,8BAA8B;QAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAErD,wBAAwB;QACxB,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAElC,wBAAwB;QACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,OAAO,GAAkB,EAAE,CAAC;QAEhC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC9D,IAAI,KAAK;wBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM;YAER,KAAK,KAAK;gBACR,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM;YAER,KAAK,UAAU,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM;YAER;gBACE,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,uBAAuB;QACvB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE5C,mBAAmB;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QAEtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,SAAuB,EACvB,OAAsB;QAEtB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAE/E,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,yBAAyB;YACzB,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,iCAAiC;YAC7D,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS;gBAAE,SAAS;YAE7D,uCAAuC;YACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;YACtC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,QAAQ,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,OAAsB,EAAE,OAAgC;QACvE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,GAAG,CAAC;QAE5C,mDAAmD;QACnD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBACrD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1C,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzE,CAAC,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,UAAU,GAAmD,EAAE,CAAC;QAEtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAElC,yBAAyB;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAElD,mBAAmB;YACnB,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEzC,mBAAmB;YACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,wCAAwC;YACxC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YACjD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC;gBAEzB,2BAA2B;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAExB,8BAA8B;gBAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAErD,wBAAwB;gBACxB,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAElC,wBAAwB;gBACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrC,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC,CAAC;YAEJ,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAa;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvB,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAAyD;QAEzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QAEtD,8BAA8B;QAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QAEnB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,kBAAkB,GAA2B,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACnD,kBAAkB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAC3C,CAAC;QAED,MAAM,aAAa,GAA+B;YAChD,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC/B,kBAAkB;YAClB,aAAa;YACb,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACvC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACjC,YAAY,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;gBACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnD,CAAC,CAAC,CAAC;YACP,aAAa,EACX,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;gBACrD,CAAC,CAAC,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEvE,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEnE,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEnE,2BAA2B;QAC3B,IAAI,MAAM,GAAyC,SAAS,CAAC;QAC7D,IACE,aAAa,CAAC,MAAM,KAAK,WAAW;YACpC,WAAW,CAAC,MAAM,KAAK,WAAW;YAClC,WAAW,CAAC,MAAM,KAAK,WAAW,EAClC,CAAC;YACD,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;aAAM,IACL,aAAa,CAAC,MAAM,KAAK,UAAU;YACnC,WAAW,CAAC,MAAM,KAAK,UAAU;YACjC,WAAW,CAAC,MAAM,KAAK,UAAU,EACjC,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;QAED,OAAO;YACL,MAAM;YACN,UAAU,EAAE;gBACV,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,WAAW;aACnB;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;YACN,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,kCAAkC;IAElC;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuB;QACtC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,IAAY,EAAE,EACd,SAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,SAAS,EAAmB,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,SAAS,EAAmB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,UAAyB,EAAE,CAAC,EAAE,EAAE,EAAmB;QAEnD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,CAAC;gBAAE,SAAS;YAC5B,sEAAsE;YACtE,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS;gBAAE,SAAS;YAC7D,uCAAuC;YACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;YACtC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,8BAA8B;IAEtB,aAAa,CAAC,KAAkB;QACtC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAElE,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,KAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,2CAA2C;QAC3C,IAAI,WAAW,GAAuB,IAAI,CAAC;QAE3C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,oBAAoB;YACjC,CAAC;YAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACpB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,KAAkB;QAElB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClE,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACjD,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,2BAA2B;YAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,gBAAgB,CAAC,KAAkB;QACzC,IAAI,OAAO,GAAkB,EAAE,CAAC;QAEhC,0CAA0C;QAC1C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY;gBAAE,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAClB,OAAsB,EACtB,KAAkB;QAElB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,mBAAmB;YACnB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,qBAAqB;YACrB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,sBAAsB;YACtB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,eAAe;YACf,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,cAAc;YACd,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACzD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC/D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC/D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC7C,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACjC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;wBAClC,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAkB;QAC1C,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAEO,mBAAmB;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,mBAAmB;QACnB,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;QAE3C,mBAAmB;QACnB,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;QAE3C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,KAAkB;QAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,uBAAuB;QACvB,IAAI,IAAI,GAAG,CAAC;QAEZ,gBAAgB;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAExE,2BAA2B;QAC3B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7C,4BAA4B;QAC5B,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CACxB,MAAgB,EAChB,eAAyB;QAEzB,MAAM,kBAAkB,GACtB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;QAErD,IAAI,kBAAkB,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACnD,eAAe,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;QAC/E,CAAC;QAED,IAAI,kBAAkB,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,eAAe,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;QACjF,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3C,CAAC;IAEO,gBAAgB,CACtB,MAAgB,EAChB,eAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAI,KAAK,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;IAC7D,CAAC;IAEO,gBAAgB,CACtB,MAAgB,EAChB,eAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzC,eAAe,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aAC1D,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,OAAO,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,YAAY,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC;YAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;YAElD,iEAAiE;YACjE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEtB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAgB;oBACzB,GAAG,SAAS;oBACZ,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC5B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;wBACxC,CAAC,CAAC,SAAS;iBACd,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;YAED,eAAe;YACf,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChD,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,yBAAyB;YACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,uBAAuB;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,mCAAmC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtC,sBAAsB;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAEvC,iCAAiC;YACjC,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAC;YAClC,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAC;YAClC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEjC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC;QACF,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC;YACJ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAA6B,EAAE,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvF,CAAC;CACF;AAcD,0EAA0E;AAC1E,+EAA+E;AAC/E,oDAAoD;AACpD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM;CACP,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,GAAG,CACZ,IAAI;SACD,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}