@elaraai/east 1.0.80 → 1.0.82
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.
- package/dist/src/builtins.d.ts +1 -1
- package/dist/src/builtins.d.ts.map +1 -1
- package/dist/src/builtins.js +19 -0
- package/dist/src/builtins.js.map +1 -1
- package/dist/src/codegen/spellings.d.ts.map +1 -1
- package/dist/src/codegen/spellings.js +3 -0
- package/dist/src/codegen/spellings.js.map +1 -1
- package/dist/src/comparison.d.ts +54 -0
- package/dist/src/comparison.d.ts.map +1 -1
- package/dist/src/comparison.equivalent.spec.d.ts +6 -0
- package/dist/src/comparison.equivalent.spec.d.ts.map +1 -0
- package/dist/src/comparison.equivalent.spec.js +130 -0
- package/dist/src/comparison.equivalent.spec.js.map +1 -0
- package/dist/src/comparison.js +93 -20
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile/builtins/array.d.ts +2 -1
- package/dist/src/compile/builtins/array.d.ts.map +1 -1
- package/dist/src/compile/builtins/array.js +35 -0
- package/dist/src/compile/builtins/array.js.map +1 -1
- package/dist/src/compile/builtins/dict.d.ts +1 -0
- package/dist/src/compile/builtins/dict.d.ts.map +1 -1
- package/dist/src/compile/builtins/dict.js +25 -0
- package/dist/src/compile/builtins/dict.js.map +1 -1
- package/dist/src/compile/builtins/set.d.ts +1 -0
- package/dist/src/compile/builtins/set.d.ts.map +1 -1
- package/dist/src/compile/builtins/set.js +25 -0
- package/dist/src/compile/builtins/set.js.map +1 -1
- package/dist/src/compile/builtins/tree.d.ts +32 -0
- package/dist/src/compile/builtins/tree.d.ts.map +1 -0
- package/dist/src/compile/builtins/tree.js +108 -0
- package/dist/src/compile/builtins/tree.js.map +1 -0
- package/dist/src/compile/functions.d.ts.map +1 -1
- package/dist/src/compile/functions.js +4 -4
- package/dist/src/compile/functions.js.map +1 -1
- package/dist/src/compile/runtime.d.ts +12 -15
- package/dist/src/compile/runtime.d.ts.map +1 -1
- package/dist/src/compile/runtime.js +19 -16
- package/dist/src/compile/runtime.js.map +1 -1
- package/dist/src/compile.signature.spec.d.ts +6 -0
- package/dist/src/compile.signature.spec.d.ts.map +1 -0
- package/dist/src/compile.signature.spec.js +53 -0
- package/dist/src/compile.signature.spec.js.map +1 -0
- package/dist/src/expr/array.d.ts +158 -81
- package/dist/src/expr/array.d.ts.map +1 -1
- package/dist/src/expr/array.js +68 -51
- package/dist/src/expr/array.js.map +1 -1
- package/dist/src/expr/ast.d.ts.map +1 -1
- package/dist/src/expr/ast.js +13 -0
- package/dist/src/expr/ast.js.map +1 -1
- package/dist/src/expr/blob.d.ts +8 -8
- package/dist/src/expr/blob.js +8 -8
- package/dist/src/expr/block.d.ts +18 -5
- package/dist/src/expr/block.d.ts.map +1 -1
- package/dist/src/expr/block.js +19 -0
- package/dist/src/expr/block.js.map +1 -1
- package/dist/src/expr/boolean.d.ts +10 -10
- package/dist/src/expr/boolean.js +10 -10
- package/dist/src/expr/datetime.d.ts +28 -28
- package/dist/src/expr/datetime.js +28 -28
- package/dist/src/expr/dict.d.ts +101 -51
- package/dist/src/expr/dict.d.ts.map +1 -1
- package/dist/src/expr/dict.js +97 -36
- package/dist/src/expr/dict.js.map +1 -1
- package/dist/src/expr/float.d.ts +23 -23
- package/dist/src/expr/float.js +23 -23
- package/dist/src/expr/integer.d.ts +17 -17
- package/dist/src/expr/integer.js +11 -11
- package/dist/src/expr/libs/array.d.ts +6 -6
- package/dist/src/expr/libs/array.js +6 -6
- package/dist/src/expr/libs/blob.d.ts +2 -2
- package/dist/src/expr/libs/blob.js +2 -2
- package/dist/src/expr/libs/datetime.d.ts +25 -25
- package/dist/src/expr/libs/datetime.js +25 -25
- package/dist/src/expr/libs/dict.d.ts +2 -2
- package/dist/src/expr/libs/dict.js +2 -2
- package/dist/src/expr/libs/float.d.ts +15 -15
- package/dist/src/expr/libs/float.js +15 -15
- package/dist/src/expr/libs/integer.d.ts +12 -12
- package/dist/src/expr/libs/integer.js +12 -12
- package/dist/src/expr/libs/set.d.ts +2 -2
- package/dist/src/expr/libs/set.js +2 -2
- package/dist/src/expr/libs/string.d.ts +4 -4
- package/dist/src/expr/libs/string.js +4 -4
- package/dist/src/expr/recursive.d.ts +22 -5
- package/dist/src/expr/recursive.d.ts.map +1 -1
- package/dist/src/expr/recursive.js +22 -5
- package/dist/src/expr/recursive.js.map +1 -1
- package/dist/src/expr/ref.d.ts +5 -5
- package/dist/src/expr/ref.js +5 -5
- package/dist/src/expr/set.d.ts +96 -51
- package/dist/src/expr/set.d.ts.map +1 -1
- package/dist/src/expr/set.js +85 -29
- package/dist/src/expr/set.js.map +1 -1
- package/dist/src/expr/string.d.ts +28 -28
- package/dist/src/expr/string.js +28 -28
- package/dist/src/expr/struct.d.ts.map +1 -1
- package/dist/src/expr/struct.js +2 -2
- package/dist/src/expr/variant.d.ts +12 -12
- package/dist/src/expr/variant.js +7 -7
- package/dist/src/function_symbols.d.ts +28 -0
- package/dist/src/function_symbols.d.ts.map +1 -0
- package/dist/src/function_symbols.js +28 -0
- package/dist/src/function_symbols.js.map +1 -0
- package/dist/src/location.d.ts +32 -0
- package/dist/src/location.d.ts.map +1 -1
- package/dist/src/location.js +38 -0
- package/dist/src/location.js.map +1 -1
- package/dist/src/location.spec.js +89 -1
- package/dist/src/location.spec.js.map +1 -1
- package/dist/src/runner_protocol.d.ts +46 -5
- package/dist/src/runner_protocol.d.ts.map +1 -1
- package/dist/src/runner_protocol.js +24 -5
- package/dist/src/runner_protocol.js.map +1 -1
- package/dist/src/serialization/beast2/index.d.ts +1 -0
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +1 -0
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/v5/canonical.d.ts +101 -0
- package/dist/src/serialization/beast2/v5/canonical.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.js +436 -0
- package/dist/src/serialization/beast2/v5/canonical.js.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.js +124 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/elements.d.ts +3 -1
- package/dist/src/serialization/beast2/v5/elements.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/elements.js +7 -2
- package/dist/src/serialization/beast2/v5/elements.js.map +1 -1
- package/dist/src/serialization/beast2/v5/elements.spec.js +1 -1
- package/dist/src/serialization/beast2/v5/elements.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/intake.d.ts +98 -0
- package/dist/src/serialization/beast2/v5/intake.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.js +462 -0
- package/dist/src/serialization/beast2/v5/intake.js.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/intake.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.spec.js +202 -0
- package/dist/src/serialization/beast2/v5/intake.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/runs.d.ts +6 -4
- package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/runs.js +31 -5
- package/dist/src/serialization/beast2/v5/runs.js.map +1 -1
- package/dist/src/serialization/beast2/v5/runs.spec.js +23 -3
- package/dist/src/serialization/beast2/v5/runs.spec.js.map +1 -1
- package/dist/src/serialization/index.d.ts +1 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +1 -1
- package/dist/src/serialization/index.js.map +1 -1
- package/package.json +1 -1
package/dist/src/expr/set.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { get_location_id } from "../location.js";
|
|
2
|
-
import { SetType, BooleanType, FunctionType, IntegerType, NullType, NeverType, DictType, printType, FloatType, isTypeEqual, ArrayType, VariantType, StringType } from "../types.js";
|
|
2
|
+
import { SetType, BooleanType, FunctionType, IntegerType, NullType, NeverType, DictType, printType, FloatType, isTypeEqual, ArrayType, VariantType, StringType, OptionType } from "../types.js";
|
|
3
3
|
import { valueOrExprToAst, valueOrExprToAstTyped } from "./ast.js";
|
|
4
4
|
import { equal, notEqual } from "./block.js";
|
|
5
5
|
import { AstSymbol, Expr, TypeSymbol } from "./expr.js";
|
|
@@ -22,7 +22,7 @@ import { none, some } from "../containers/variant.js";
|
|
|
22
22
|
* }));
|
|
23
23
|
* $.return(uniqueItems);
|
|
24
24
|
* });
|
|
25
|
-
* const compiled = East.compile(buildSet
|
|
25
|
+
* const compiled = East.compile(buildSet, []);
|
|
26
26
|
* compiled(["apple", "banana", "apple", "cherry"]); // Set(["apple", "banana", "cherry"])
|
|
27
27
|
* ```
|
|
28
28
|
*
|
|
@@ -32,7 +32,7 @@ import { none, some } from "../containers/variant.js";
|
|
|
32
32
|
* const unionSets = East.function([SetType(IntegerType), SetType(IntegerType)], SetType(IntegerType), ($, set1, set2) => {
|
|
33
33
|
* $.return(set1.union(set2));
|
|
34
34
|
* });
|
|
35
|
-
* const compiled = East.compile(unionSets
|
|
35
|
+
* const compiled = East.compile(unionSets, []);
|
|
36
36
|
* compiled(new Set([1n, 2n, 3n]), new Set([3n, 4n, 5n])); // Set([1n, 2n, 3n, 4n, 5n])
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
@@ -52,7 +52,7 @@ export class SetExpr extends Expr {
|
|
|
52
52
|
* const getSize = East.function([SetType(StringType)], IntegerType, ($, set) => {
|
|
53
53
|
* $.return(set.size());
|
|
54
54
|
* });
|
|
55
|
-
* const compiled = East.compile(getSize
|
|
55
|
+
* const compiled = East.compile(getSize, []);
|
|
56
56
|
* compiled(new Set(["a", "b", "c"])); // 3n
|
|
57
57
|
* compiled(new Set()); // 0n
|
|
58
58
|
* ```
|
|
@@ -78,7 +78,7 @@ export class SetExpr extends Expr {
|
|
|
78
78
|
* const hasElement = East.function([SetType(StringType), StringType], BooleanType, ($, set, element) => {
|
|
79
79
|
* $.return(set.has(element));
|
|
80
80
|
* });
|
|
81
|
-
* const compiled = East.compile(hasElement
|
|
81
|
+
* const compiled = East.compile(hasElement, []);
|
|
82
82
|
* const set = new Set(["a", "b", "c"]);
|
|
83
83
|
* compiled(set, "b"); // true
|
|
84
84
|
* compiled(set, "d"); // false
|
|
@@ -111,7 +111,7 @@ export class SetExpr extends Expr {
|
|
|
111
111
|
* $(set.insert(element));
|
|
112
112
|
* $.return(null);
|
|
113
113
|
* });
|
|
114
|
-
* const compiled = East.compile(insertElement
|
|
114
|
+
* const compiled = East.compile(insertElement, []);
|
|
115
115
|
* const set = new Set(["a", "b"]);
|
|
116
116
|
* compiled(set, "c"); // set now has Set(["a", "b", "c"])
|
|
117
117
|
* // compiled(set, "a") would throw error (duplicate element)
|
|
@@ -142,7 +142,7 @@ export class SetExpr extends Expr {
|
|
|
142
142
|
* const tryInsertElement = East.function([SetType(StringType), StringType], BooleanType, ($, set, element) => {
|
|
143
143
|
* $.return(set.tryInsert(element));
|
|
144
144
|
* });
|
|
145
|
-
* const compiled = East.compile(tryInsertElement
|
|
145
|
+
* const compiled = East.compile(tryInsertElement, []);
|
|
146
146
|
* const set = new Set(["a", "b"]);
|
|
147
147
|
* compiled(set, "c"); // true (set now has Set(["a", "b", "c"]))
|
|
148
148
|
* compiled(set, "a"); // false (element already exists, set unchanged)
|
|
@@ -176,7 +176,7 @@ export class SetExpr extends Expr {
|
|
|
176
176
|
* $(set.delete(element));
|
|
177
177
|
* $.return(null);
|
|
178
178
|
* });
|
|
179
|
-
* const compiled = East.compile(deleteElement
|
|
179
|
+
* const compiled = East.compile(deleteElement, []);
|
|
180
180
|
* const set = new Set(["a", "b", "c"]);
|
|
181
181
|
* compiled(set, "b"); // set now has Set(["a", "c"])
|
|
182
182
|
* // compiled(set, "d") would throw error (element not found)
|
|
@@ -207,7 +207,7 @@ export class SetExpr extends Expr {
|
|
|
207
207
|
* const tryDeleteElement = East.function([SetType(StringType), StringType], BooleanType, ($, set, element) => {
|
|
208
208
|
* $.return(set.tryDelete(element));
|
|
209
209
|
* });
|
|
210
|
-
* const compiled = East.compile(tryDeleteElement
|
|
210
|
+
* const compiled = East.compile(tryDeleteElement, []);
|
|
211
211
|
* const set = new Set(["a", "b", "c"]);
|
|
212
212
|
* compiled(set, "b"); // true (set now has Set(["a", "c"]))
|
|
213
213
|
* compiled(set, "d"); // false (element not found, set unchanged)
|
|
@@ -237,7 +237,7 @@ export class SetExpr extends Expr {
|
|
|
237
237
|
* $(set.clear());
|
|
238
238
|
* $.return(null);
|
|
239
239
|
* });
|
|
240
|
-
* const compiled = East.compile(clearSet
|
|
240
|
+
* const compiled = East.compile(clearSet, []);
|
|
241
241
|
* const set = new Set(["a", "b", "c"]);
|
|
242
242
|
* compiled(set); // set is now Set([])
|
|
243
243
|
* ```
|
|
@@ -266,7 +266,7 @@ export class SetExpr extends Expr {
|
|
|
266
266
|
* $(set1.unionInPlace(set2));
|
|
267
267
|
* $.return(null);
|
|
268
268
|
* });
|
|
269
|
-
* const compiled = East.compile(unionInPlace
|
|
269
|
+
* const compiled = East.compile(unionInPlace, []);
|
|
270
270
|
* const set1 = new Set([1n, 2n, 3n]);
|
|
271
271
|
* const set2 = new Set([3n, 4n, 5n]);
|
|
272
272
|
* compiled(set1, set2); // set1 now has Set([1n, 2n, 3n, 4n, 5n])
|
|
@@ -296,7 +296,7 @@ export class SetExpr extends Expr {
|
|
|
296
296
|
* const unionSets = East.function([SetType(IntegerType), SetType(IntegerType)], SetType(IntegerType), ($, set1, set2) => {
|
|
297
297
|
* $.return(set1.union(set2));
|
|
298
298
|
* });
|
|
299
|
-
* const compiled = East.compile(unionSets
|
|
299
|
+
* const compiled = East.compile(unionSets, []);
|
|
300
300
|
* compiled(new Set([1n, 2n, 3n]), new Set([3n, 4n, 5n])); // Set([1n, 2n, 3n, 4n, 5n])
|
|
301
301
|
* ```
|
|
302
302
|
*/
|
|
@@ -322,7 +322,7 @@ export class SetExpr extends Expr {
|
|
|
322
322
|
* const intersectSets = East.function([SetType(IntegerType), SetType(IntegerType)], SetType(IntegerType), ($, set1, set2) => {
|
|
323
323
|
* $.return(set1.intersection(set2));
|
|
324
324
|
* });
|
|
325
|
-
* const compiled = East.compile(intersectSets
|
|
325
|
+
* const compiled = East.compile(intersectSets, []);
|
|
326
326
|
* compiled(new Set([1n, 2n, 3n]), new Set([2n, 3n, 4n])); // Set([2n, 3n])
|
|
327
327
|
* ```
|
|
328
328
|
*/
|
|
@@ -348,7 +348,7 @@ export class SetExpr extends Expr {
|
|
|
348
348
|
* const diffSets = East.function([SetType(IntegerType), SetType(IntegerType)], SetType(IntegerType), ($, set1, set2) => {
|
|
349
349
|
* $.return(set1.difference(set2));
|
|
350
350
|
* });
|
|
351
|
-
* const compiled = East.compile(diffSets
|
|
351
|
+
* const compiled = East.compile(diffSets, []);
|
|
352
352
|
* compiled(new Set([1n, 2n, 3n]), new Set([2n, 3n, 4n])); // Set([1n])
|
|
353
353
|
* ```
|
|
354
354
|
*/
|
|
@@ -374,7 +374,7 @@ export class SetExpr extends Expr {
|
|
|
374
374
|
* const symDiffSets = East.function([SetType(IntegerType), SetType(IntegerType)], SetType(IntegerType), ($, set1, set2) => {
|
|
375
375
|
* $.return(set1.symmetricDifference(set2));
|
|
376
376
|
* });
|
|
377
|
-
* const compiled = East.compile(symDiffSets
|
|
377
|
+
* const compiled = East.compile(symDiffSets, []);
|
|
378
378
|
* compiled(new Set([1n, 2n, 3n]), new Set([2n, 3n, 4n])); // Set([1n, 4n])
|
|
379
379
|
* ```
|
|
380
380
|
*/
|
|
@@ -400,7 +400,7 @@ export class SetExpr extends Expr {
|
|
|
400
400
|
* const checkSubset = East.function([SetType(IntegerType), SetType(IntegerType)], BooleanType, ($, set1, set2) => {
|
|
401
401
|
* $.return(set1.isSubsetOf(set2));
|
|
402
402
|
* });
|
|
403
|
-
* const compiled = East.compile(checkSubset
|
|
403
|
+
* const compiled = East.compile(checkSubset, []);
|
|
404
404
|
* compiled(new Set([1n, 2n]), new Set([1n, 2n, 3n])); // true
|
|
405
405
|
* compiled(new Set([1n, 4n]), new Set([1n, 2n, 3n])); // false
|
|
406
406
|
* ```
|
|
@@ -427,7 +427,7 @@ export class SetExpr extends Expr {
|
|
|
427
427
|
* const checkSuperset = East.function([SetType(IntegerType), SetType(IntegerType)], BooleanType, ($, set1, set2) => {
|
|
428
428
|
* $.return(set1.isSupersetOf(set2));
|
|
429
429
|
* });
|
|
430
|
-
* const compiled = East.compile(checkSuperset
|
|
430
|
+
* const compiled = East.compile(checkSuperset, []);
|
|
431
431
|
* compiled(new Set([1n, 2n, 3n]), new Set([1n, 2n])); // true
|
|
432
432
|
* compiled(new Set([1n, 2n]), new Set([1n, 2n, 3n])); // false
|
|
433
433
|
* ```
|
|
@@ -454,7 +454,7 @@ export class SetExpr extends Expr {
|
|
|
454
454
|
* const checkDisjoint = East.function([SetType(IntegerType), SetType(IntegerType)], BooleanType, ($, set1, set2) => {
|
|
455
455
|
* $.return(set1.isDisjointFrom(set2));
|
|
456
456
|
* });
|
|
457
|
-
* const compiled = East.compile(checkDisjoint
|
|
457
|
+
* const compiled = East.compile(checkDisjoint, []);
|
|
458
458
|
* compiled(new Set([1n, 2n]), new Set([3n, 4n])); // true
|
|
459
459
|
* compiled(new Set([1n, 2n]), new Set([2n, 3n])); // false
|
|
460
460
|
* ```
|
|
@@ -480,7 +480,7 @@ export class SetExpr extends Expr {
|
|
|
480
480
|
* const copySet = East.function([SetType(StringType)], SetType(StringType), ($, set) => {
|
|
481
481
|
* $.return(set.copy());
|
|
482
482
|
* });
|
|
483
|
-
* const compiled = East.compile(copySet
|
|
483
|
+
* const compiled = East.compile(copySet, []);
|
|
484
484
|
* const set = new Set(["a", "b", "c"]);
|
|
485
485
|
* const copy = compiled(set); // Set(["a", "b", "c"])
|
|
486
486
|
* // Modifying copy doesn't affect set
|
|
@@ -508,7 +508,7 @@ export class SetExpr extends Expr {
|
|
|
508
508
|
* const filterEven = East.function([SetType(IntegerType)], SetType(IntegerType), ($, set) => {
|
|
509
509
|
* $.return(set.filter(($, x) => x.modulo(2n).equal(0n)));
|
|
510
510
|
* });
|
|
511
|
-
* const compiled = East.compile(filterEven
|
|
511
|
+
* const compiled = East.compile(filterEven, []);
|
|
512
512
|
* compiled(new Set([1n, 2n, 3n, 4n, 5n, 6n])); // Set([2n, 4n, 6n])
|
|
513
513
|
* ```
|
|
514
514
|
*/
|
|
@@ -580,7 +580,7 @@ export class SetExpr extends Expr {
|
|
|
580
580
|
* }));
|
|
581
581
|
* $.return(null);
|
|
582
582
|
* });
|
|
583
|
-
* const compiled = East.compile(printElements
|
|
583
|
+
* const compiled = East.compile(printElements, []);
|
|
584
584
|
* compiled(new Set(["a", "b", "c"])); // Iterates over all elements
|
|
585
585
|
* ```
|
|
586
586
|
*/
|
|
@@ -643,7 +643,7 @@ export class SetExpr extends Expr {
|
|
|
643
643
|
* const sumSet = East.function([SetType(IntegerType)], IntegerType, ($, set) => {
|
|
644
644
|
* $.return(set.reduce(($, acc, element) => acc.add(element), 0n));
|
|
645
645
|
* });
|
|
646
|
-
* const compiled = East.compile(sumSet
|
|
646
|
+
* const compiled = East.compile(sumSet, []);
|
|
647
647
|
* compiled(new Set([1n, 2n, 3n, 4n])); // 10n
|
|
648
648
|
* ```
|
|
649
649
|
*/
|
|
@@ -678,7 +678,7 @@ export class SetExpr extends Expr {
|
|
|
678
678
|
* const runningTotal = East.function([SetType(IntegerType)], ArrayType(IntegerType), ($, set) => {
|
|
679
679
|
* $.return(set.scan(($, acc, element) => acc.add(element), 0n));
|
|
680
680
|
* });
|
|
681
|
-
* const compiled = East.compile(runningTotal
|
|
681
|
+
* const compiled = East.compile(runningTotal, []);
|
|
682
682
|
* compiled(new Set([1n, 2n, 3n])); // [1n, 3n, 6n]
|
|
683
683
|
* compiled(new Set()); // []
|
|
684
684
|
* ```
|
|
@@ -835,6 +835,62 @@ export class SetExpr extends Expr {
|
|
|
835
835
|
arguments: [this[AstSymbol], fnAst, onConflictAst],
|
|
836
836
|
});
|
|
837
837
|
}
|
|
838
|
+
/**
|
|
839
|
+
* Builds a tree of any depth from the set's elements, in a node type of your own; each element is its own key.
|
|
840
|
+
*
|
|
841
|
+
* `parentFn` names each element's parent; `buildFn` turns an element and its children's built nodes into its
|
|
842
|
+
* node. The result is the roots.
|
|
843
|
+
*
|
|
844
|
+
* @param node - The node type `buildFn` returns; its `children` argument is an Array of it
|
|
845
|
+
* @param parentFn - Function taking an element and returning its parent, or `none` for a root
|
|
846
|
+
* @param buildFn - Function taking (element, children) and returning the element's node
|
|
847
|
+
* @returns An ArrayExpr of the root nodes, in set order
|
|
848
|
+
*
|
|
849
|
+
* @throws East runtime error if the parents form a cycle, naming the first element in set order on the cycle
|
|
850
|
+
*
|
|
851
|
+
* @remarks
|
|
852
|
+
* - An element whose parent is not in the set (an orphan) becomes a root.
|
|
853
|
+
* - `buildFn` runs once per element, children before parents; `children` holds the built children in set
|
|
854
|
+
* order. Every `parentFn` runs first, and the cycle check comes before any `buildFn`.
|
|
855
|
+
* - `node` can be any type: a recursive node type builds a tree value, a non-recursive one folds bottom-up.
|
|
856
|
+
* - The walk is iterative, so building costs no stack at any depth. A recursive node value is still limited
|
|
857
|
+
* in depth on the C and Python runtimes, which collect and free a value recursively: tens of thousands of
|
|
858
|
+
* levels.
|
|
859
|
+
*
|
|
860
|
+
* @example
|
|
861
|
+
* ```ts
|
|
862
|
+
* // Each number's parent is the number without its last digit
|
|
863
|
+
* const NodeType = RecursiveType(self => StructType({ id: IntegerType, children: ArrayType(self) }));
|
|
864
|
+
*
|
|
865
|
+
* const nest = East.function([SetType(IntegerType)], ArrayType(NodeType), ($, ids) => {
|
|
866
|
+
* $.return(ids.toTree(
|
|
867
|
+
* NodeType,
|
|
868
|
+
* ($, id) => id.lessThan(10n).ifElse(() => none, () => some(id.divide(10n))),
|
|
869
|
+
* ($, id, children) => ({ id, children }),
|
|
870
|
+
* ));
|
|
871
|
+
* });
|
|
872
|
+
* const compiled = East.compile(nest, []);
|
|
873
|
+
* compiled(new Set([1n, 2n, 12n, 13n, 123n]));
|
|
874
|
+
* // [{ id: 1n, children: [
|
|
875
|
+
* // { id: 12n, children: [{ id: 123n, children: [] }] },
|
|
876
|
+
* // { id: 13n, children: [] },
|
|
877
|
+
* // ] }, { id: 2n, children: [] }]
|
|
878
|
+
* ```
|
|
879
|
+
*
|
|
880
|
+
* @see {@link ArrayExpr.toTree} for elements that carry their own key.
|
|
881
|
+
*/
|
|
882
|
+
toTree(node, parentFn, buildFn) {
|
|
883
|
+
const parentFnAst = valueOrExprToAstTyped(parentFn, FunctionType([this.key_type], OptionType(this.key_type)));
|
|
884
|
+
const buildFnAst = valueOrExprToAstTyped(buildFn, FunctionType([this.key_type, ArrayType(node)], node));
|
|
885
|
+
return Expr.fromAst({
|
|
886
|
+
ast_type: "Builtin",
|
|
887
|
+
type: ArrayType(node),
|
|
888
|
+
loc_id: get_location_id(),
|
|
889
|
+
builtin: "SetToTree",
|
|
890
|
+
type_parameters: [this.key_type, node],
|
|
891
|
+
arguments: [this[AstSymbol], parentFnAst, buildFnAst],
|
|
892
|
+
});
|
|
893
|
+
}
|
|
838
894
|
groupReduce(keyFn, initFn, reduceFn) {
|
|
839
895
|
const keyFnAst = valueOrExprToAstTyped(keyFn, FunctionType([this.key_type], undefined));
|
|
840
896
|
const keyType = keyFnAst.type.output;
|
|
@@ -977,7 +1033,7 @@ export class SetExpr extends Expr {
|
|
|
977
1033
|
* const allPositive = East.function([SetType(IntegerType)], BooleanType, ($, numbers) => {
|
|
978
1034
|
* $.return(numbers.every(($, n) => n.greaterThan(0n)));
|
|
979
1035
|
* });
|
|
980
|
-
* const compiled = East.compile(allPositive
|
|
1036
|
+
* const compiled = East.compile(allPositive, []);
|
|
981
1037
|
* compiled(new Set([1n, 2n, 3n])); // true
|
|
982
1038
|
* compiled(new Set([1n, -2n, 3n])); // false
|
|
983
1039
|
* compiled(new Set([])); // true (empty set)
|
|
@@ -989,7 +1045,7 @@ export class SetExpr extends Expr {
|
|
|
989
1045
|
* const allTrue = East.function([SetType(BooleanType)], BooleanType, ($, flags) => {
|
|
990
1046
|
* $.return(flags.every());
|
|
991
1047
|
* });
|
|
992
|
-
* const compiled = East.compile(allTrue
|
|
1048
|
+
* const compiled = East.compile(allTrue, []);
|
|
993
1049
|
* compiled(new Set([true, true])); // true
|
|
994
1050
|
* compiled(new Set([true, false])); // false
|
|
995
1051
|
* ```
|
|
@@ -1069,7 +1125,7 @@ export class SetExpr extends Expr {
|
|
|
1069
1125
|
* const hasNegative = East.function([SetType(IntegerType)], BooleanType, ($, numbers) => {
|
|
1070
1126
|
* $.return(numbers.some(($, n) => n.lessThan(0n)));
|
|
1071
1127
|
* });
|
|
1072
|
-
* const compiled = East.compile(hasNegative
|
|
1128
|
+
* const compiled = East.compile(hasNegative, []);
|
|
1073
1129
|
* compiled(new Set([1n, 2n, 3n])); // false
|
|
1074
1130
|
* compiled(new Set([1n, -2n, 3n])); // true
|
|
1075
1131
|
* compiled(new Set([])); // false (empty set)
|
|
@@ -1081,7 +1137,7 @@ export class SetExpr extends Expr {
|
|
|
1081
1137
|
* const anyTrue = East.function([SetType(BooleanType)], BooleanType, ($, flags) => {
|
|
1082
1138
|
* $.return(flags.some());
|
|
1083
1139
|
* });
|
|
1084
|
-
* const compiled = East.compile(anyTrue
|
|
1140
|
+
* const compiled = East.compile(anyTrue, []);
|
|
1085
1141
|
* compiled(new Set([false, false])); // false
|
|
1086
1142
|
* compiled(new Set([false, true])); // true
|
|
1087
1143
|
* ```
|
|
@@ -1189,7 +1245,7 @@ export class SetExpr extends Expr {
|
|
|
1189
1245
|
* const isEqual = East.function([SetType(IntegerType), SetType(IntegerType)], BooleanType, ($, a, b) => {
|
|
1190
1246
|
* $.return(a.equals(b));
|
|
1191
1247
|
* });
|
|
1192
|
-
* const compiled = East.compile(isEqual
|
|
1248
|
+
* const compiled = East.compile(isEqual, []);
|
|
1193
1249
|
* compiled(new Set([1n, 2n, 3n]), new Set([1n, 2n, 3n])); // true
|
|
1194
1250
|
* compiled(new Set([1n, 2n]), new Set([1n, 2n, 3n])); // false
|
|
1195
1251
|
* ```
|
|
@@ -1208,7 +1264,7 @@ export class SetExpr extends Expr {
|
|
|
1208
1264
|
* const isNotEqual = East.function([SetType(IntegerType), SetType(IntegerType)], BooleanType, ($, a, b) => {
|
|
1209
1265
|
* $.return(a.notEquals(b));
|
|
1210
1266
|
* });
|
|
1211
|
-
* const compiled = East.compile(isNotEqual
|
|
1267
|
+
* const compiled = East.compile(isNotEqual, []);
|
|
1212
1268
|
* compiled(new Set([1n, 2n]), new Set([1n, 2n, 3n])); // true
|
|
1213
1269
|
* compiled(new Set([1n, 2n, 3n]), new Set([1n, 2n, 3n])); // false
|
|
1214
1270
|
* ```
|
package/dist/src/expr/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/expr/set.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/expr/set.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAiB,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/M,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AAOrE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,OAAuB,SAAQ,IAAgB;IACtC;IAApB,YAAoB,QAAW,EAAE,GAAQ,EAAE,UAAkB;QAC3D,KAAK,CAAC,GAAG,CAAC,IAAkB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAD7B,aAAQ,GAAR,QAAQ,CAAG;IAE/B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,GAA0B;QAC5B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,GAA0B;QAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SACrC,CAAa,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,GAA0B;QAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SACrC,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,GAA0B;QAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SACrC,CAAa,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,GAA0B;QAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;SACrC,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B,CAAa,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,KAAqC;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,iBAAiB;YAC1B,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAa,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,KAAqC;QACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAe,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,KAAqC;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAe,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,KAAqC;QAC9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAe,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,KAAqC;QACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAe,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,KAAqC;QAC9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,aAAa;YACtB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,KAAqC;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,aAAa;YACtB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,uCAAuC;SAChF,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,KAAqC;QAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,eAAe;YACxB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAgB,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI;QACF,qEAAqE;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B,CAAe,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAwD;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAe,CAAC,CAAC;SACxD,CAAe,CAAC;IACnB,CAAC;IA0BD,SAAS,CAAC,EAAO;QACf,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,CAAuB,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAiB,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAkB,CAAC;QAE7C,kCAAkC;QAClC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,uFAAuF,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClI,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAExC,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;YACxC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,SAAS,CAAC;YACvD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;SACtD,CAAqB,CAAC;IACzB,CAAC;IA8BD,QAAQ,CAAC,EAAO;QACd,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;QAEjD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mDAAmD,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,mDAAmD,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAEvD,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,UAAsB;YAC5B,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,aAAa;YACtB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,QAAoB,CAAC;YAClE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAoD;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAS,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAiB,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAkB,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;SACtD,CAAa,CAAC;IACjB,CAAC;IAqBD,GAAG,CAAC,EAAgF;QAClF,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,CAAuB,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAiB,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAkB,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;YACzC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;SACtD,CAAqB,CAAC;IACzB,CAAC;IA2BD,SAAS,CAAM,KAAU,EAAE,SAAc;QACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAkB,CAAC;QAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAE/F,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,OAAmB;YACzB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAO,CAAC;YACrD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAK,EAAmF,EAAE,IAAQ;QACtG,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAS,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAE3F,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,EAAE,OAAO,CAAC;SAC/D,CAAkC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,IAAI,CAAK,EAAmF,EAAE,IAAQ;QACpG,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAS,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS,CAAC,OAAmB,CAAC;YACpC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAmB,CAAC;YACjE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,EAAE,OAAO,CAAC;SAC/D,CAAqC,CAAC;IACzC,CAAC;IAqCD,OAAO,CAAC,EAAQ;QACd,IAAI,MAA0B,CAAC;QAC/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,oBAAoB;YACpB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,IAAI,CAAC,QAAoB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAuB,CAAC;QACxH,CAAC;aAAM,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,CAAuB,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAiB,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAkB,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;YAC3B,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,UAAU,CAAC;YACxD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;SACtD,CAAmB,CAAC;IACvB,CAAC;IAqBD,KAAK,CAAC,KAAW;QACf,IAAI,QAAQ,CAAA;QACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,MAA0B,CAAC;YAC/B,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAuB,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,IAAI,CAAC,QAAoB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChH,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAuB,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAI,QAAQ,CAAC,IAAqB,CAAC,MAAkB,CAAC;QAEnE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAmB,CAAC;YACjE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAiB,CAAC;IACrB,CAAC;IA6CD,MAAM,CAAC,KAAW,EAAE,OAAa,EAAE,YAAkB;QACnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5H,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAkB,CAAC;QAEjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QAErD,IAAI,aAAa,CAAC;QAClB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,+BAA+B,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3L,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,qBAAqB,CAAC,YAAmB,EAAE,YAAY,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACvH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;YAClC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAO,EAAE,SAAS,CAAC;YAChE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;SAClE,CAAuB,CAAC;IAC3B,CAAC;IA8BD,cAAc,CAAC,EAAO;QACpB,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kDAAkD,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS,CAAC,WAAuB,CAAC;YACxC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,mBAAmB;YAC5B,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAuB,CAAC;YACrE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;SACpC,CAAmB,CAAC;IACvB,CAAC;IA6BD,YAAY,CAAC,EAAO;QAClB,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,OAAO,CAAC,WAAuB,CAAC;YACtC,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,iBAAiB;YAC1B,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAuB,CAAC;YACrE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;SACpC,CAAiB,CAAC;IACrB,CAAC;IAgCD,aAAa,CAAC,EAAO,EAAE,YAAkB;QACvC,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAe,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAiB,CAAC;QAE/C,IAAI,aAAa,CAAC;QAClB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,+BAA+B,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3L,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,qBAAqB,CAAC,YAAmB,EAAE,YAAY,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACvH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,OAAmB,EAAE,SAAqB,CAAC;YAC1D,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,kBAAkB;YAC3B,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAmB,EAAE,SAAqB,CAAC;YACxF,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC;SACnD,CAAuB,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,MAAM,CAAqB,IAAO,EAAE,QAA8D,EAAE,OAAiF;QACnL,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,QAAoB,CAAC,CAAC,CAAC,CAAC;QACtI,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAoB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAEpH,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;YACrB,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,IAAI,CAAC;YAClD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC;SACtD,CAAiB,CAAC;IACrB,CAAC;IA8BD,WAAW,CAAC,KAAU,EAAE,MAAW,EAAE,QAAa;QAChD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAkB,CAAC;QAEjD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAkB,CAAC;QAEnD,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvG,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,OAAmB,EAAE,QAAoB,CAAC;YACzD,MAAM,EAAE,eAAe,EAAE;YACzB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAmB,EAAE,QAAoB,CAAC;YACvF,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;SAC/D,CAAuB,CAAC;IAC3B,CAAC;IA0BD,aAAa,CAAC,KAAU,EAAE,OAAa;QACrC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QACrD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAQ,EAC9C,CAAC,CAAC,EAAO,EAAE,SAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAQ,EACzE,CAAC,CAAC,CAAM,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,CAAQ,CACV,CAAC;IACJ,CAAC;IA0BD,WAAW,CAAC,KAAU,EAAE,OAAa;QACnC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QACrD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAQ,EAC9C,CAAC,CAAC,EAAO,EAAE,SAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAQ,EACnF,CAAC,CAAC,CAAM,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC,CAAQ,CACV,CAAC;IACJ,CAAC;IA4CD,YAAY,CAAC,KAAU,EAAE,MAAW,EAAE,OAAa,EAAE,SAAe;QAClE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1F,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAkB,CAAC;QACnD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,2FAA2F;YAC3F,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACvG,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEjD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAQ,EAC9C,CAAC,CAAC,EAAO,EAAE,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAQ,EACpF,CAAC,CAAC,CAAM,EAAE,IAAS,EAAE,GAAQ,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBAC7B,IAAI,EAAE,CAAC,CAAM,EAAE,QAAa,EAAE,EAAE;wBAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC9C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACrC,CAAC;oBACD,IAAI,EAAE,CAAC,CAAM,EAAE,EAAE;wBACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;oBAChC,CAAC;iBACF,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC,CAAQ,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAQ,EAC9C,CAAC,CAAC,EAAO,EAAE,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAQ,EACpF,CAAC,CAAC,CAAM,EAAE,IAAS,EAAE,GAAQ,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC,CAAQ,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAuBD,SAAS,CAAC,KAAW;QACnB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACpH,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC3D,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAQ,EACxB,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ,CAC/C,CAAC;IACJ,CAAC;IA0BD,UAAU,CAAC,KAAU,EAAE,MAAW;QAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC3D,CAAC,GAAG,EAAE,CAAC,IAAI,CAAQ,EACnB,CAAC,CAAC,EAAO,EAAE,GAAgB,EAAE,GAAQ,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAgB,CAAC;YACzD,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAQ,CACV,CAAC;IACJ,CAAC;IA0BD,SAAS,CAAC,KAAU,EAAE,MAAW;QAC/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC3D,CAAC,GAAG,EAAE,CAAC,KAAK,CAAQ,EACpB,CAAC,CAAC,EAAO,EAAE,GAAgB,EAAE,GAAQ,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAgB,CAAC;YACzD,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAQ,CACV,CAAC;IACJ,CAAC;IA6BD,QAAQ,CAAC,KAAU,EAAE,OAAa;QAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6DAA6D,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC3D,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC7D,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ,CAC/C,CAAC;IACJ,CAAC;IA2BD,SAAS,CAAC,KAAU,EAAE,OAAa;QACjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAkB,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAQ,EAC3D,CAAC,CAAC,EAAO,EAAE,GAAQ,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAE,GAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC9E,CAAC,CAAQ,EACT,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAQ,CAC/F,CAAC,GAAG,CAAC,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAQ,CAAQ,CAAC;IAC9E,CAAC;IAED,gDAAgD;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,EAAuD;QAC3D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAW,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,kDAAkD,SAAS,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,CAAC,CAAC;YAC5G,CAAC;YACD,gGAAgG;YAChG,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,MAAM,aAAa,GAAQ;gBACzB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,QAAoB;gBAC/B,MAAM,EAAE,eAAe,EAAE;gBACzB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,kGAAkG;YAClG,MAAM,YAAY,GAAQ;gBACxB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,eAAe,EAAE;gBACzB,OAAO,EAAE,YAAY;gBACrB,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,CAAC,aAAa,CAAC;aAC3B,CAAC;YACF,MAAM,UAAU,GAAQ;gBACtB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,UAAU,CAAQ;gBAClE,MAAM,EAAE,eAAe,EAAE;gBACzB,UAAU,EAAE,CAAC,aAAoB,CAAC;gBAClC,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,UAAiB;oBACvB,MAAM,EAAE,eAAe,EAAE;oBACzB,GAAG,EAAE,CAAC;4BACJ,SAAS,EAAE,YAAY;4BACvB,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;yBACtL,CAAC;oBACF,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;iBAC3L;aACF,CAAC;YACF,MAAM,MAAM,GAAQ,IAAI,CAAC,OAAO,CAAC;gBAC/B,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,UAAiB;gBACvB,MAAM,EAAE,eAAe,EAAE;gBACzB,OAAO,EAAE,aAAa;gBACtB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,QAAQ,CAAC;gBACtD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;aACzC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAgB,CAAC;QACpF,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAEpF,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAQ,CAAgB,CAAC;YAC5D,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,IAAI,CAAC,EAAuD;QAC1D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAW,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,iDAAiD,SAAS,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,+FAA+F;YAC/F,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,MAAM,aAAa,GAAQ;gBACzB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,QAAoB;gBAC/B,MAAM,EAAE,eAAe,EAAE;gBACzB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,8FAA8F;YAC9F,MAAM,UAAU,GAAQ;gBACtB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,UAAU,CAAQ;gBAClE,MAAM,EAAE,eAAe,EAAE;gBACzB,UAAU,EAAE,CAAC,aAAoB,CAAC;gBAClC,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,UAAiB;oBACvB,MAAM,EAAE,eAAe,EAAE;oBACzB,GAAG,EAAE,CAAC;4BACJ,SAAS,EAAE,aAAa;4BACxB,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;yBACtL,CAAC;oBACF,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;iBAC3L;aACF,CAAC;YACF,MAAM,MAAM,GAAQ,IAAI,CAAC,OAAO,CAAC;gBAC/B,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,UAAiB;gBACvB,MAAM,EAAE,eAAe,EAAE;gBACzB,OAAO,EAAE,aAAa;gBACtB,eAAe,EAAE,CAAC,IAAI,CAAC,QAAoB,EAAE,QAAQ,CAAC;gBACtD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;aACzC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAgB,CAAC;QACpF,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAEpF,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAQ,CAAgB,CAAC;YAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAwCD,GAAG,CAAC,EAAQ;QACV,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAChH,MAAM,IAAI,KAAK,CAAC,kEAAkE,SAAS,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,CAAC,CAAC;YAC5H,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAQ,EAAE,IAAI,CAAQ,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAClF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;YACjD,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,oEAAoE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAU,CAAQ,CAAQ,EAAE,IAAI,CAAQ,CAAC;QACrH,CAAC;IACH,CAAC;IAyCD,IAAI,CAAC,EAAQ;QACX,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,WAAW,CAAC,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAE,KAAqB,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChI,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,CAAC,QAAoB,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAkB,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAClH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,mEAAmE,SAAS,CAAC,IAAI,CAAC,QAAoB,CAAC,EAAE,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAClF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAkB,CAAC;YACjD,IAAI,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAa,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAU,CAAiB,CAAC,OAAO,EAAE,CAAc,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1K,CAAC;iBAAM,IAAI,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAU,CAAc,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1I,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,mEAAmE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAA8C;QACnD,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,KAA8C;QACtD,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,+EAA+E;IAC/E,oCAAoC;IACpC,+EAA+E;IAE/E,+BAA+B;IAC/B,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACjB,+BAA+B;IAC/B,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAEpB,kCAAkC;IAClC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IACpB,kCAAkC;IAClC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;CAC3B"}
|