@minnowdb/core 0.0.1 → 0.1.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 (186) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -1
  3. package/dist/block-format/block.d.ts +46 -0
  4. package/dist/block-format/block.d.ts.map +1 -0
  5. package/dist/block-format/block.js +244 -0
  6. package/dist/block-format/block.js.map +1 -0
  7. package/dist/block-format/checksum.d.ts +7 -0
  8. package/dist/block-format/checksum.d.ts.map +1 -0
  9. package/dist/block-format/checksum.js +56 -0
  10. package/dist/block-format/checksum.js.map +1 -0
  11. package/dist/block-format/codecs.d.ts +24 -0
  12. package/dist/block-format/codecs.d.ts.map +1 -0
  13. package/dist/block-format/codecs.js +102 -0
  14. package/dist/block-format/codecs.js.map +1 -0
  15. package/dist/block-format/column.d.ts +8 -0
  16. package/dist/block-format/column.d.ts.map +1 -0
  17. package/dist/block-format/column.js +166 -0
  18. package/dist/block-format/column.js.map +1 -0
  19. package/dist/block-format/index.d.ts +7 -0
  20. package/dist/block-format/index.d.ts.map +1 -0
  21. package/dist/block-format/index.js +7 -0
  22. package/dist/block-format/index.js.map +1 -0
  23. package/dist/block-format/physical.d.ts +20 -0
  24. package/dist/block-format/physical.d.ts.map +1 -0
  25. package/dist/block-format/physical.js +439 -0
  26. package/dist/block-format/physical.js.map +1 -0
  27. package/dist/block-format/types.d.ts +93 -0
  28. package/dist/block-format/types.d.ts.map +1 -0
  29. package/dist/block-format/types.js +2 -0
  30. package/dist/block-format/types.js.map +1 -0
  31. package/dist/engine/artifact-cache.d.ts +22 -0
  32. package/dist/engine/artifact-cache.d.ts.map +1 -0
  33. package/dist/engine/artifact-cache.js +68 -0
  34. package/dist/engine/artifact-cache.js.map +1 -0
  35. package/dist/engine/batch.d.ts +28 -0
  36. package/dist/engine/batch.d.ts.map +1 -0
  37. package/dist/engine/batch.js +38 -0
  38. package/dist/engine/batch.js.map +1 -0
  39. package/dist/engine/buffered-writer.d.ts +43 -0
  40. package/dist/engine/buffered-writer.d.ts.map +1 -0
  41. package/dist/engine/buffered-writer.js +158 -0
  42. package/dist/engine/buffered-writer.js.map +1 -0
  43. package/dist/engine/catalog.d.ts +82 -0
  44. package/dist/engine/catalog.d.ts.map +1 -0
  45. package/dist/engine/catalog.js +47 -0
  46. package/dist/engine/catalog.js.map +1 -0
  47. package/dist/engine/client.d.ts +211 -0
  48. package/dist/engine/client.d.ts.map +1 -0
  49. package/dist/engine/client.js +538 -0
  50. package/dist/engine/client.js.map +1 -0
  51. package/dist/engine/coordinator.d.ts +17 -0
  52. package/dist/engine/coordinator.d.ts.map +1 -0
  53. package/dist/engine/coordinator.js +60 -0
  54. package/dist/engine/coordinator.js.map +1 -0
  55. package/dist/engine/database.d.ts +661 -0
  56. package/dist/engine/database.d.ts.map +1 -0
  57. package/dist/engine/database.js +10313 -0
  58. package/dist/engine/database.js.map +1 -0
  59. package/dist/engine/defaults.d.ts +33 -0
  60. package/dist/engine/defaults.d.ts.map +1 -0
  61. package/dist/engine/defaults.js +87 -0
  62. package/dist/engine/defaults.js.map +1 -0
  63. package/dist/engine/errors.d.ts +55 -0
  64. package/dist/engine/errors.d.ts.map +1 -0
  65. package/dist/engine/errors.js +81 -0
  66. package/dist/engine/errors.js.map +1 -0
  67. package/dist/engine/fts.d.ts +93 -0
  68. package/dist/engine/fts.d.ts.map +1 -0
  69. package/dist/engine/fts.js +273 -0
  70. package/dist/engine/fts.js.map +1 -0
  71. package/dist/engine/group-index.d.ts +32 -0
  72. package/dist/engine/group-index.d.ts.map +1 -0
  73. package/dist/engine/group-index.js +366 -0
  74. package/dist/engine/group-index.js.map +1 -0
  75. package/dist/engine/index.d.ts +13 -0
  76. package/dist/engine/index.d.ts.map +1 -0
  77. package/dist/engine/index.js +12 -0
  78. package/dist/engine/index.js.map +1 -0
  79. package/dist/engine/join-index.d.ts +12 -0
  80. package/dist/engine/join-index.d.ts.map +1 -0
  81. package/dist/engine/join-index.js +217 -0
  82. package/dist/engine/join-index.js.map +1 -0
  83. package/dist/engine/live.d.ts +86 -0
  84. package/dist/engine/live.d.ts.map +1 -0
  85. package/dist/engine/live.js +289 -0
  86. package/dist/engine/live.js.map +1 -0
  87. package/dist/engine/memory.d.ts +37 -0
  88. package/dist/engine/memory.d.ts.map +1 -0
  89. package/dist/engine/memory.js +119 -0
  90. package/dist/engine/memory.js.map +1 -0
  91. package/dist/engine/optimizer.d.ts +20 -0
  92. package/dist/engine/optimizer.d.ts.map +1 -0
  93. package/dist/engine/optimizer.js +1170 -0
  94. package/dist/engine/optimizer.js.map +1 -0
  95. package/dist/engine/query-cache.d.ts +10 -0
  96. package/dist/engine/query-cache.d.ts.map +1 -0
  97. package/dist/engine/query-cache.js +58 -0
  98. package/dist/engine/query-cache.js.map +1 -0
  99. package/dist/engine/query.d.ts +844 -0
  100. package/dist/engine/query.d.ts.map +1 -0
  101. package/dist/engine/query.js +7450 -0
  102. package/dist/engine/query.js.map +1 -0
  103. package/dist/engine/schema-wire.d.ts +92 -0
  104. package/dist/engine/schema-wire.d.ts.map +1 -0
  105. package/dist/engine/schema-wire.js +115 -0
  106. package/dist/engine/schema-wire.js.map +1 -0
  107. package/dist/engine/schema.d.ts +394 -0
  108. package/dist/engine/schema.d.ts.map +1 -0
  109. package/dist/engine/schema.js +709 -0
  110. package/dist/engine/schema.js.map +1 -0
  111. package/dist/engine/sort-keys.d.ts +36 -0
  112. package/dist/engine/sort-keys.d.ts.map +1 -0
  113. package/dist/engine/sort-keys.js +60 -0
  114. package/dist/engine/sort-keys.js.map +1 -0
  115. package/dist/engine/sql-json.d.ts +30 -0
  116. package/dist/engine/sql-json.d.ts.map +1 -0
  117. package/dist/engine/sql-json.js +120 -0
  118. package/dist/engine/sql-json.js.map +1 -0
  119. package/dist/engine/sql-semantics.d.ts +31 -0
  120. package/dist/engine/sql-semantics.d.ts.map +1 -0
  121. package/dist/engine/sql-semantics.js +121 -0
  122. package/dist/engine/sql-semantics.js.map +1 -0
  123. package/dist/engine/vector.d.ts +87 -0
  124. package/dist/engine/vector.d.ts.map +1 -0
  125. package/dist/engine/vector.js +4227 -0
  126. package/dist/engine/vector.js.map +1 -0
  127. package/dist/engine/worker-host.d.ts +48 -0
  128. package/dist/engine/worker-host.d.ts.map +1 -0
  129. package/dist/engine/worker-host.js +501 -0
  130. package/dist/engine/worker-host.js.map +1 -0
  131. package/dist/engine/worker.d.ts +2 -0
  132. package/dist/engine/worker.d.ts.map +1 -0
  133. package/dist/engine/worker.js +14 -0
  134. package/dist/engine/worker.js.map +1 -0
  135. package/dist/index.d.ts +2 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +2 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/plan/index.d.ts +17 -0
  140. package/dist/plan/index.d.ts.map +1 -0
  141. package/dist/plan/index.js +17 -0
  142. package/dist/plan/index.js.map +1 -0
  143. package/dist/storage/fixture-shape.d.ts +42 -0
  144. package/dist/storage/fixture-shape.d.ts.map +1 -0
  145. package/dist/storage/fixture-shape.js +146 -0
  146. package/dist/storage/fixture-shape.js.map +1 -0
  147. package/dist/storage/index.d.ts +5 -0
  148. package/dist/storage/index.d.ts.map +1 -0
  149. package/dist/storage/index.js +5 -0
  150. package/dist/storage/index.js.map +1 -0
  151. package/dist/storage/indexeddb.d.ts +139 -0
  152. package/dist/storage/indexeddb.d.ts.map +1 -0
  153. package/dist/storage/indexeddb.js +3161 -0
  154. package/dist/storage/indexeddb.js.map +1 -0
  155. package/dist/storage/memory.d.ts +121 -0
  156. package/dist/storage/memory.d.ts.map +1 -0
  157. package/dist/storage/memory.js +1455 -0
  158. package/dist/storage/memory.js.map +1 -0
  159. package/dist/storage/snapshot.d.ts +108 -0
  160. package/dist/storage/snapshot.d.ts.map +1 -0
  161. package/dist/storage/snapshot.js +276 -0
  162. package/dist/storage/snapshot.js.map +1 -0
  163. package/dist/storage/types.d.ts +895 -0
  164. package/dist/storage/types.d.ts.map +1 -0
  165. package/dist/storage/types.js +1549 -0
  166. package/dist/storage/types.js.map +1 -0
  167. package/dist/testing/index.d.ts +76 -0
  168. package/dist/testing/index.d.ts.map +1 -0
  169. package/dist/testing/index.js +233 -0
  170. package/dist/testing/index.js.map +1 -0
  171. package/dist/testing/seeds.d.ts +11 -0
  172. package/dist/testing/seeds.d.ts.map +1 -0
  173. package/dist/testing/seeds.js +50 -0
  174. package/dist/testing/seeds.js.map +1 -0
  175. package/dist/transactions/index.d.ts +148 -0
  176. package/dist/transactions/index.d.ts.map +1 -0
  177. package/dist/transactions/index.js +662 -0
  178. package/dist/transactions/index.js.map +1 -0
  179. package/dist/worker-protocol/index.d.ts +84 -0
  180. package/dist/worker-protocol/index.d.ts.map +1 -0
  181. package/dist/worker-protocol/index.js +117 -0
  182. package/dist/worker-protocol/index.js.map +1 -0
  183. package/package.json +66 -16
  184. package/sql-feature-matrix.json +1275 -0
  185. package/index.d.ts +0 -1
  186. package/index.js +0 -1
@@ -0,0 +1,166 @@
1
+ const textEncoder = new TextEncoder();
2
+ const textDecoder = new TextDecoder("utf-8", { fatal: true });
3
+ // The on-disk format is little-endian; bulk Float64 writes use platform order when they match.
4
+ const PLATFORM_LITTLE_ENDIAN = new Uint8Array(new Uint32Array([1]).buffer)[0] === 1;
5
+ function bitmapLength(rows) {
6
+ return Math.ceil(rows / 8);
7
+ }
8
+ function setBit(bitmap, index) {
9
+ const byte = index >>> 3;
10
+ bitmap[byte] = (bitmap[byte] ?? 0) | (1 << (index & 7));
11
+ }
12
+ function hasBit(bitmap, index) {
13
+ return ((bitmap[index >>> 3] ?? 0) & (1 << (index & 7))) !== 0;
14
+ }
15
+ export function encodeColumn(input) {
16
+ // Index loops throughout: forEach/map skip holes in sparse arrays, which would desynchronize
17
+ // the validity bitmap from the value payload and persist a corrupt block. A hole reads as
18
+ // undefined and is rejected like any other non-value.
19
+ const rowCount = input.values.length;
20
+ const validity = new Uint8Array(bitmapLength(rowCount));
21
+ let nullCount = 0;
22
+ for (let index = 0; index < rowCount; index += 1) {
23
+ const value = input.values[index];
24
+ if (value === undefined)
25
+ throw new TypeError("Column values cannot be undefined");
26
+ if (value !== null)
27
+ setBit(validity, index);
28
+ else
29
+ nullCount += 1;
30
+ }
31
+ switch (input.type) {
32
+ case "boolean": {
33
+ const values = new Uint8Array(bitmapLength(rowCount));
34
+ for (let index = 0; index < rowCount; index += 1) {
35
+ if (input.values[index] === true)
36
+ setBit(values, index);
37
+ }
38
+ return { bytes: join(validity, values), metadata: {}, nullCount };
39
+ }
40
+ case "number": {
41
+ const values = new Float64Array(rowCount);
42
+ const view = PLATFORM_LITTLE_ENDIAN ? undefined : new DataView(values.buffer);
43
+ let min = Number.POSITIVE_INFINITY;
44
+ let max = Number.NEGATIVE_INFINITY;
45
+ for (let index = 0; index < rowCount; index += 1) {
46
+ const value = input.values[index];
47
+ if (value === null || value === undefined)
48
+ continue;
49
+ if (!Number.isFinite(value))
50
+ throw new TypeError("Number values must be finite");
51
+ if (view === undefined)
52
+ values[index] = value;
53
+ else
54
+ view.setFloat64(index * 8, value, true);
55
+ min = Math.min(min, value);
56
+ max = Math.max(max, value);
57
+ }
58
+ const metadata = min === Number.POSITIVE_INFINITY ? {} : { zoneMap: { min, max } };
59
+ return { bytes: join(validity, new Uint8Array(values.buffer)), metadata, nullCount };
60
+ }
61
+ case "datetime": {
62
+ const values = new Float64Array(rowCount);
63
+ const view = PLATFORM_LITTLE_ENDIAN ? undefined : new DataView(values.buffer);
64
+ let min = Number.POSITIVE_INFINITY;
65
+ let max = Number.NEGATIVE_INFINITY;
66
+ for (let index = 0; index < rowCount; index += 1) {
67
+ const value = input.values[index];
68
+ if (value === null || value === undefined)
69
+ continue;
70
+ const milliseconds = value.getTime();
71
+ if (!Number.isFinite(milliseconds))
72
+ throw new TypeError("Datetime values must be valid Dates");
73
+ if (view === undefined)
74
+ values[index] = milliseconds;
75
+ else
76
+ view.setFloat64(index * 8, milliseconds, true);
77
+ min = Math.min(min, milliseconds);
78
+ max = Math.max(max, milliseconds);
79
+ }
80
+ const metadata = min === Number.POSITIVE_INFINITY ? {} : { zoneMap: { min, max } };
81
+ return { bytes: join(validity, new Uint8Array(values.buffer)), metadata, nullCount };
82
+ }
83
+ case "string": {
84
+ // Every value UTF-8-encodes once, directly into a shared worst-case scratch (three bytes
85
+ // per UTF-16 code unit bounds any UTF-8 expansion) instead of allocating a throwaway
86
+ // buffer per string and copying it into place afterwards.
87
+ let capacity = 0;
88
+ for (let index = 0; index < rowCount; index += 1) {
89
+ const value = input.values[index];
90
+ if (value !== null && value !== undefined)
91
+ capacity += value.length * 3;
92
+ }
93
+ const offsets = new Uint32Array(rowCount + 1);
94
+ const content = new Uint8Array(capacity);
95
+ let offset = 0;
96
+ for (let index = 0; index < rowCount; index += 1) {
97
+ const value = input.values[index];
98
+ if (value !== null && value !== undefined) {
99
+ offset += textEncoder.encodeInto(value, content.subarray(offset)).written;
100
+ }
101
+ offsets[index + 1] = offset;
102
+ }
103
+ return {
104
+ bytes: join(validity, new Uint8Array(offsets.buffer), content.subarray(0, offset)),
105
+ metadata: {},
106
+ nullCount,
107
+ };
108
+ }
109
+ }
110
+ }
111
+ export function decodeColumn(type, bytes, rowCount) {
112
+ const validityLength = bitmapLength(rowCount);
113
+ if (bytes.byteLength < validityLength)
114
+ throw new Error("Truncated validity bitmap");
115
+ const validity = bytes.subarray(0, validityLength);
116
+ const payload = bytes.subarray(validityLength);
117
+ const values = [];
118
+ if (type === "boolean") {
119
+ if (payload.byteLength !== bitmapLength(rowCount))
120
+ throw new Error("Invalid boolean payload");
121
+ for (let index = 0; index < rowCount; index += 1) {
122
+ values.push(hasBit(validity, index) ? hasBit(payload, index) : null);
123
+ }
124
+ }
125
+ else if (type === "number" || type === "datetime") {
126
+ if (payload.byteLength !== rowCount * 8)
127
+ throw new Error(`Invalid ${type} payload`);
128
+ const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
129
+ for (let index = 0; index < rowCount; index += 1) {
130
+ const value = view.getFloat64(index * 8, true);
131
+ values.push(hasBit(validity, index) ? (type === "datetime" ? new Date(value) : value) : null);
132
+ }
133
+ }
134
+ else {
135
+ const offsetsLength = (rowCount + 1) * 4;
136
+ if (payload.byteLength < offsetsLength)
137
+ throw new Error("Invalid string offsets");
138
+ const offsets = new DataView(payload.buffer, payload.byteOffset, offsetsLength);
139
+ const content = payload.subarray(offsetsLength);
140
+ let previous = 0;
141
+ for (let index = 0; index <= rowCount; index += 1) {
142
+ const current = offsets.getUint32(index * 4, true);
143
+ if (current < previous || current > content.byteLength)
144
+ throw new Error("Invalid string offset");
145
+ if (index > 0) {
146
+ values.push(hasBit(validity, index - 1)
147
+ ? textDecoder.decode(content.subarray(previous, current))
148
+ : null);
149
+ }
150
+ previous = current;
151
+ }
152
+ if (previous !== content.byteLength)
153
+ throw new Error("Unreferenced string bytes");
154
+ }
155
+ return { type, values };
156
+ }
157
+ function join(...parts) {
158
+ const output = new Uint8Array(parts.reduce((total, part) => total + part.byteLength, 0));
159
+ let offset = 0;
160
+ for (const part of parts) {
161
+ output.set(part, offset);
162
+ offset += part.byteLength;
163
+ }
164
+ return output;
165
+ }
166
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/block-format/column.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./block.js";
2
+ export * from "./checksum.js";
3
+ export * from "./codecs.js";
4
+ export * from "./column.js";
5
+ export * from "./physical.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block-format/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./block.js";
2
+ export * from "./checksum.js";
3
+ export * from "./codecs.js";
4
+ export * from "./column.js";
5
+ export * from "./physical.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block-format/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { LogicalType, PhysicalColumnMeasurement, PhysicalColumnPayload, PhysicalColumnRange, ValidatedPhysicalColumn } from "./types.js";
2
+ export declare const MAX_PHYSICAL_COLUMN_BYTE_LENGTH: number;
3
+ export declare function physicalBitmapByteLength(rowCount: number): number;
4
+ /** Returns the exact encoded byte length for a version-zero physical column. */
5
+ export declare function physicalColumnByteLength(type: LogicalType, rowCount: number, stringContentByteLength?: number): number;
6
+ /**
7
+ * Validates a physical payload without copying its bytes or materializing row
8
+ * values. The returned object retains the input `bytes` reference.
9
+ */
10
+ export declare function validatePhysicalColumn<T extends LogicalType>(input: PhysicalColumnPayload<T>): ValidatedPhysicalColumn<T>;
11
+ /**
12
+ * Computes exact sizing and metadata for concatenated half-open row ranges.
13
+ * No output byte buffer is allocated.
14
+ */
15
+ export declare function measurePhysicalColumnRanges<T extends LogicalType>(type: T, ranges: ReadonlyArray<PhysicalColumnRange<T>>): PhysicalColumnMeasurement<T>;
16
+ /** Allocates exactly `measurement.encodedByteLength` bytes and fills them. */
17
+ export declare function buildPhysicalColumnFromRanges<T extends LogicalType>(type: T, ranges: ReadonlyArray<PhysicalColumnRange<T>>): ValidatedPhysicalColumn<T>;
18
+ export declare function slicePhysicalColumn<T extends LogicalType>(column: PhysicalColumnPayload<T>, start: number, end: number): ValidatedPhysicalColumn<T>;
19
+ export declare function concatenatePhysicalColumns<T extends LogicalType>(type: T, columns: ReadonlyArray<PhysicalColumnPayload<T>>): ValidatedPhysicalColumn<T>;
20
+ //# sourceMappingURL=physical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../src/block-format/physical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAchE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,uBAAuB,SAAI,GAC1B,MAAM,CAmCR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAC1D,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAC9B,uBAAuB,CAAC,CAAC,CAAC,CA0H5B;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,WAAW,EAC/D,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAC5C,yBAAyB,CAAC,CAAC,CAAC,CAE9B;AAED,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,WAAW,EACjE,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAC5C,uBAAuB,CAAC,CAAC,CAAC,CA6F5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EACvD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,WAAW,EAC9D,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/C,uBAAuB,CAAC,CAAC,CAAC,CAK5B"}