flowquery 1.0.67 → 1.0.68
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/README.md +46 -16
- package/dist/flowquery.min.js +1 -1
- package/dist/parsing/statement_info_crawler.d.ts +110 -12
- package/dist/parsing/statement_info_crawler.d.ts.map +1 -1
- package/dist/parsing/statement_info_crawler.js +375 -22
- package/dist/parsing/statement_info_crawler.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,15 +8,23 @@ const node_1 = __importDefault(require("../graph/node"));
|
|
|
8
8
|
const relationship_1 = __importDefault(require("../graph/relationship"));
|
|
9
9
|
const ast_node_1 = __importDefault(require("./ast_node"));
|
|
10
10
|
const lookup_1 = __importDefault(require("./data_structures/lookup"));
|
|
11
|
+
const f_string_1 = __importDefault(require("./expressions/f_string"));
|
|
11
12
|
const identifier_1 = __importDefault(require("./expressions/identifier"));
|
|
13
|
+
const operator_1 = require("./expressions/operator");
|
|
14
|
+
const parameter_reference_1 = __importDefault(require("./expressions/parameter_reference"));
|
|
12
15
|
const reference_1 = __importDefault(require("./expressions/reference"));
|
|
13
16
|
const subquery_expression_1 = __importDefault(require("./expressions/subquery_expression"));
|
|
17
|
+
const aggregated_return_1 = __importDefault(require("./operations/aggregated_return"));
|
|
18
|
+
const aggregated_with_1 = __importDefault(require("./operations/aggregated_with"));
|
|
14
19
|
const create_node_1 = __importDefault(require("./operations/create_node"));
|
|
15
20
|
const create_relationship_1 = __importDefault(require("./operations/create_relationship"));
|
|
16
21
|
const delete_node_1 = __importDefault(require("./operations/delete_node"));
|
|
17
22
|
const delete_relationship_1 = __importDefault(require("./operations/delete_relationship"));
|
|
18
23
|
const load_1 = __importDefault(require("./operations/load"));
|
|
19
24
|
const match_1 = __importDefault(require("./operations/match"));
|
|
25
|
+
const order_by_1 = __importDefault(require("./operations/order_by"));
|
|
26
|
+
const return_1 = __importDefault(require("./operations/return"));
|
|
27
|
+
const with_1 = __importDefault(require("./operations/with"));
|
|
20
28
|
/**
|
|
21
29
|
* Walks one or more parsed FlowQuery statement ASTs and extracts a
|
|
22
30
|
* `StatementInfo` describing the labels, relationship types, sources, and
|
|
@@ -41,12 +49,18 @@ class StatementInfoCrawler {
|
|
|
41
49
|
this._relProps = new Map();
|
|
42
50
|
this._nodeSources = new Map();
|
|
43
51
|
this._relSources = new Map();
|
|
52
|
+
this._nodeLiterals = new Map();
|
|
53
|
+
this._relLiterals = new Map();
|
|
54
|
+
this._nodeDeclaredProps = new Map();
|
|
55
|
+
this._relDeclaredProps = new Map();
|
|
56
|
+
this._nodeDeclaredSources = new Map();
|
|
57
|
+
this._relDeclaredSources = new Map();
|
|
44
58
|
this._ownCreatedNodeLabels = new Set();
|
|
45
59
|
this._ownCreatedRelTypes = new Set();
|
|
46
60
|
/**
|
|
47
61
|
* For each inline CREATE VIRTUAL clause, the (label or type) it
|
|
48
62
|
* declares and its inner statement AST. The label key receives the
|
|
49
|
-
* sources collected from the statement during {@link
|
|
63
|
+
* sources collected from the statement during {@link resolveRegisteredDefinitions}.
|
|
50
64
|
*/
|
|
51
65
|
this._ownNodeCreates = [];
|
|
52
66
|
this._ownRelCreates = [];
|
|
@@ -63,7 +77,7 @@ class StatementInfoCrawler {
|
|
|
63
77
|
for (const root of roots) {
|
|
64
78
|
this.crawlStatement(root);
|
|
65
79
|
}
|
|
66
|
-
this.
|
|
80
|
+
this.resolveRegisteredDefinitions();
|
|
67
81
|
return this.snapshot();
|
|
68
82
|
}
|
|
69
83
|
toIterable(statements) {
|
|
@@ -79,6 +93,12 @@ class StatementInfoCrawler {
|
|
|
79
93
|
this._relProps = new Map();
|
|
80
94
|
this._nodeSources = new Map();
|
|
81
95
|
this._relSources = new Map();
|
|
96
|
+
this._nodeLiterals = new Map();
|
|
97
|
+
this._relLiterals = new Map();
|
|
98
|
+
this._nodeDeclaredProps = new Map();
|
|
99
|
+
this._relDeclaredProps = new Map();
|
|
100
|
+
this._nodeDeclaredSources = new Map();
|
|
101
|
+
this._relDeclaredSources = new Map();
|
|
82
102
|
this._ownCreatedNodeLabels = new Set();
|
|
83
103
|
this._ownCreatedRelTypes = new Set();
|
|
84
104
|
this._ownNodeCreates = [];
|
|
@@ -142,15 +162,17 @@ class StatementInfoCrawler {
|
|
|
142
162
|
if (element instanceof node_1.default) {
|
|
143
163
|
for (const lbl of element.labels)
|
|
144
164
|
this._nodeLabels.add(lbl);
|
|
145
|
-
for (const propKey of element.properties
|
|
165
|
+
for (const [propKey, expr] of element.properties) {
|
|
146
166
|
this.addNodeProp(element.labels, propKey);
|
|
167
|
+
this.tryAddNodeLiteral(element.labels, propKey, expr);
|
|
147
168
|
}
|
|
148
169
|
}
|
|
149
170
|
else if (element instanceof relationship_1.default) {
|
|
150
171
|
for (const t of element.types)
|
|
151
172
|
this._relTypes.add(t);
|
|
152
|
-
for (const propKey of element.properties
|
|
173
|
+
for (const [propKey, expr] of element.properties) {
|
|
153
174
|
this.addRelProp(element.types, propKey);
|
|
175
|
+
this.tryAddRelLiteral(element.types, propKey, expr);
|
|
154
176
|
}
|
|
155
177
|
}
|
|
156
178
|
}
|
|
@@ -166,16 +188,22 @@ class StatementInfoCrawler {
|
|
|
166
188
|
this.collectPropertyAccesses(op);
|
|
167
189
|
}
|
|
168
190
|
}
|
|
169
|
-
|
|
170
|
-
// Sources from inline CREATE VIRTUAL clauses
|
|
191
|
+
resolveRegisteredDefinitions() {
|
|
192
|
+
// Sources and declared properties from inline CREATE VIRTUAL clauses
|
|
193
|
+
// in the crawled statements.
|
|
171
194
|
for (const { label, statement } of this._ownNodeCreates) {
|
|
172
195
|
this.collectSources(statement, this.getOrCreate(this._nodeSources, label));
|
|
196
|
+
this.collectSources(statement, this.getOrCreate(this._nodeDeclaredSources, label));
|
|
197
|
+
this.collectDeclaredProps(statement, this.getOrCreate(this._nodeDeclaredProps, label));
|
|
173
198
|
}
|
|
174
199
|
for (const { type, statement } of this._ownRelCreates) {
|
|
175
200
|
this.collectSources(statement, this.getOrCreate(this._relSources, type));
|
|
201
|
+
this.collectSources(statement, this.getOrCreate(this._relDeclaredSources, type));
|
|
202
|
+
this.collectDeclaredProps(statement, this.getOrCreate(this._relDeclaredProps, type));
|
|
176
203
|
}
|
|
177
|
-
// Sources from already-registered virtuals
|
|
178
|
-
// reference (e.g. MATCH/DELETE against
|
|
204
|
+
// Sources / declared properties from already-registered virtuals
|
|
205
|
+
// that the crawled statements reference (e.g. MATCH/DELETE against
|
|
206
|
+
// a virtual registered earlier).
|
|
179
207
|
const db = database_1.default.getInstance();
|
|
180
208
|
for (const label of this._nodeLabels) {
|
|
181
209
|
if (this._ownCreatedNodeLabels.has(label))
|
|
@@ -183,6 +211,8 @@ class StatementInfoCrawler {
|
|
|
183
211
|
const physical = db.nodes.get(label);
|
|
184
212
|
if (physical === null || physical === void 0 ? void 0 : physical.statement) {
|
|
185
213
|
this.collectSources(physical.statement, this.getOrCreate(this._nodeSources, label));
|
|
214
|
+
this.collectSources(physical.statement, this.getOrCreate(this._nodeDeclaredSources, label));
|
|
215
|
+
this.collectDeclaredProps(physical.statement, this.getOrCreate(this._nodeDeclaredProps, label));
|
|
186
216
|
}
|
|
187
217
|
}
|
|
188
218
|
for (const type of this._relTypes) {
|
|
@@ -194,6 +224,8 @@ class StatementInfoCrawler {
|
|
|
194
224
|
for (const physical of typeMap.values()) {
|
|
195
225
|
if (physical.statement) {
|
|
196
226
|
this.collectSources(physical.statement, this.getOrCreate(this._relSources, type));
|
|
227
|
+
this.collectSources(physical.statement, this.getOrCreate(this._relDeclaredSources, type));
|
|
228
|
+
this.collectDeclaredProps(physical.statement, this.getOrCreate(this._relDeclaredProps, type));
|
|
197
229
|
}
|
|
198
230
|
}
|
|
199
231
|
}
|
|
@@ -206,6 +238,13 @@ class StatementInfoCrawler {
|
|
|
206
238
|
}
|
|
207
239
|
return set;
|
|
208
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Walks the AST rooted at `root` and records every property access
|
|
243
|
+
* (via `Lookup`) on a known node/relationship binding, every literal
|
|
244
|
+
* value supplied via equality / `IN` predicates, and descends into
|
|
245
|
+
* subqueries plus the privately-held WHERE / ORDER BY ASTs of
|
|
246
|
+
* RETURN-style operations.
|
|
247
|
+
*/
|
|
209
248
|
collectPropertyAccesses(root) {
|
|
210
249
|
const visited = new Set();
|
|
211
250
|
const stack = [root];
|
|
@@ -215,20 +254,13 @@ class StatementInfoCrawler {
|
|
|
215
254
|
continue;
|
|
216
255
|
visited.add(node);
|
|
217
256
|
if (node instanceof lookup_1.default) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
this.addNodeProp(referred.labels, propName);
|
|
226
|
-
}
|
|
227
|
-
else if (referred instanceof relationship_1.default) {
|
|
228
|
-
this.addRelProp(referred.types, propName);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
257
|
+
this.handleLookupAccess(node);
|
|
258
|
+
}
|
|
259
|
+
if (node instanceof operator_1.Equals) {
|
|
260
|
+
this.handleEqualityLiteral(node);
|
|
261
|
+
}
|
|
262
|
+
else if (node instanceof operator_1.In) {
|
|
263
|
+
this.handleInLiteral(node);
|
|
232
264
|
}
|
|
233
265
|
for (const child of node.getChildren()) {
|
|
234
266
|
stack.push(child);
|
|
@@ -240,6 +272,196 @@ class StatementInfoCrawler {
|
|
|
240
272
|
if (inner !== undefined)
|
|
241
273
|
stack.push(inner);
|
|
242
274
|
}
|
|
275
|
+
// RETURN / AggregatedReturn hold WHERE and ORDER BY clauses in
|
|
276
|
+
// private fields; descend into the ones with expression trees.
|
|
277
|
+
if (node instanceof return_1.default) {
|
|
278
|
+
const w = node._where;
|
|
279
|
+
const o = node._orderBy;
|
|
280
|
+
if (w)
|
|
281
|
+
stack.push(w);
|
|
282
|
+
if (o)
|
|
283
|
+
stack.push(o);
|
|
284
|
+
}
|
|
285
|
+
// OrderBy stores its sort expressions in a private array of
|
|
286
|
+
// SortField objects rather than as AST children; descend
|
|
287
|
+
// explicitly.
|
|
288
|
+
if (node instanceof order_by_1.default) {
|
|
289
|
+
for (const field of node.fields) {
|
|
290
|
+
stack.push(field.expression);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
handleLookupAccess(node) {
|
|
296
|
+
const target = this.resolveLookupTarget(node);
|
|
297
|
+
if (target === null)
|
|
298
|
+
return;
|
|
299
|
+
if (target.kind === "node") {
|
|
300
|
+
this.addNodeProp(target.labels, target.prop);
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
this.addRelProp(target.types, target.prop);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Resolves a `Lookup` of the shape `alias.prop` to the labels/types
|
|
308
|
+
* of the bound entity and the property name. Returns `null` if the
|
|
309
|
+
* lookup isn't of that shape or its variable doesn't resolve to a
|
|
310
|
+
* Node/Relationship.
|
|
311
|
+
*/
|
|
312
|
+
resolveLookupTarget(lookup) {
|
|
313
|
+
const variable = lookup.variable;
|
|
314
|
+
const index = lookup.index;
|
|
315
|
+
if (!(variable instanceof reference_1.default) || !(index instanceof identifier_1.default))
|
|
316
|
+
return null;
|
|
317
|
+
const propName = index.value();
|
|
318
|
+
if (typeof propName !== "string" || propName.length === 0)
|
|
319
|
+
return null;
|
|
320
|
+
const referred = variable.referred;
|
|
321
|
+
if (referred instanceof node_1.default) {
|
|
322
|
+
return { kind: "node", labels: referred.labels, prop: propName };
|
|
323
|
+
}
|
|
324
|
+
if (referred instanceof relationship_1.default) {
|
|
325
|
+
return { kind: "rel", types: referred.types, prop: propName };
|
|
326
|
+
}
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
handleEqualityLiteral(op) {
|
|
330
|
+
const lhs = op.lhs;
|
|
331
|
+
const rhs = op.rhs;
|
|
332
|
+
// Try both orientations: `alias.prop = literal` and `literal = alias.prop`.
|
|
333
|
+
this.tryRecordPropEquality(lhs, rhs);
|
|
334
|
+
this.tryRecordPropEquality(rhs, lhs);
|
|
335
|
+
}
|
|
336
|
+
tryRecordPropEquality(side, other) {
|
|
337
|
+
if (!(side instanceof lookup_1.default))
|
|
338
|
+
return;
|
|
339
|
+
if (!this.isLiteralAst(other))
|
|
340
|
+
return;
|
|
341
|
+
const target = this.resolveLookupTarget(side);
|
|
342
|
+
if (target === null)
|
|
343
|
+
return;
|
|
344
|
+
const value = this.safeEvaluate(other);
|
|
345
|
+
if (value === undefined)
|
|
346
|
+
return;
|
|
347
|
+
if (target.kind === "node") {
|
|
348
|
+
this.addNodeLiteralValue(target.labels, target.prop, value);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
this.addRelLiteralValue(target.types, target.prop, value);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
handleInLiteral(op) {
|
|
355
|
+
const lhs = op.lhs;
|
|
356
|
+
const rhs = op.rhs;
|
|
357
|
+
if (!(lhs instanceof lookup_1.default))
|
|
358
|
+
return;
|
|
359
|
+
if (!this.isLiteralAst(rhs))
|
|
360
|
+
return;
|
|
361
|
+
const target = this.resolveLookupTarget(lhs);
|
|
362
|
+
if (target === null)
|
|
363
|
+
return;
|
|
364
|
+
const value = this.safeEvaluate(rhs);
|
|
365
|
+
if (!Array.isArray(value))
|
|
366
|
+
return;
|
|
367
|
+
for (const item of value) {
|
|
368
|
+
if (target.kind === "node") {
|
|
369
|
+
this.addNodeLiteralValue(target.labels, target.prop, item);
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
this.addRelLiteralValue(target.types, target.prop, item);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Returns true iff the AST subtree contains only literal nodes (no
|
|
378
|
+
* References, ParameterReferences, Lookups, FStrings, or
|
|
379
|
+
* SubqueryExpressions). Used to guard literal-value extraction
|
|
380
|
+
* against runtime-dependent expressions.
|
|
381
|
+
*/
|
|
382
|
+
isLiteralAst(node) {
|
|
383
|
+
if (node instanceof reference_1.default ||
|
|
384
|
+
node instanceof parameter_reference_1.default ||
|
|
385
|
+
node instanceof lookup_1.default ||
|
|
386
|
+
node instanceof f_string_1.default ||
|
|
387
|
+
node instanceof subquery_expression_1.default) {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
for (const child of node.getChildren()) {
|
|
391
|
+
if (!this.isLiteralAst(child))
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
return true;
|
|
395
|
+
}
|
|
396
|
+
safeEvaluate(node) {
|
|
397
|
+
try {
|
|
398
|
+
return node.value();
|
|
399
|
+
}
|
|
400
|
+
catch (_a) {
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
tryAddNodeLiteral(labels, prop, expr) {
|
|
405
|
+
if (!this.isLiteralAst(expr))
|
|
406
|
+
return;
|
|
407
|
+
const value = this.safeEvaluate(expr);
|
|
408
|
+
if (value === undefined)
|
|
409
|
+
return;
|
|
410
|
+
this.addNodeLiteralValue(labels, prop, value);
|
|
411
|
+
}
|
|
412
|
+
tryAddRelLiteral(types, prop, expr) {
|
|
413
|
+
if (!this.isLiteralAst(expr))
|
|
414
|
+
return;
|
|
415
|
+
const value = this.safeEvaluate(expr);
|
|
416
|
+
if (value === undefined)
|
|
417
|
+
return;
|
|
418
|
+
this.addRelLiteralValue(types, prop, value);
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Walks a virtual definition's inner statement to find the final
|
|
422
|
+
* RETURN-style projection and records its aliases as the declared
|
|
423
|
+
* property set. Falls back to the last WITH if no RETURN exists.
|
|
424
|
+
*/
|
|
425
|
+
collectDeclaredProps(statement, target) {
|
|
426
|
+
let op = null;
|
|
427
|
+
try {
|
|
428
|
+
op = statement.firstChild();
|
|
429
|
+
}
|
|
430
|
+
catch (_a) {
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
let lastReturn = null;
|
|
434
|
+
let lastWith = null;
|
|
435
|
+
while (op !== null) {
|
|
436
|
+
if (op instanceof return_1.default || op instanceof aggregated_return_1.default) {
|
|
437
|
+
lastReturn = op;
|
|
438
|
+
}
|
|
439
|
+
else if (op instanceof with_1.default || op instanceof aggregated_with_1.default) {
|
|
440
|
+
lastWith = op;
|
|
441
|
+
}
|
|
442
|
+
op = op.next;
|
|
443
|
+
}
|
|
444
|
+
const projection = lastReturn !== null && lastReturn !== void 0 ? lastReturn : lastWith;
|
|
445
|
+
if (projection === null)
|
|
446
|
+
return;
|
|
447
|
+
for (const alias of this.projectionAliases(projection)) {
|
|
448
|
+
target.add(alias);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Yields the alias of every projected expression in a Projection.
|
|
453
|
+
* Mirrors the alias-resolution logic of `Projection.expressions()`
|
|
454
|
+
* (which is protected).
|
|
455
|
+
*/
|
|
456
|
+
*projectionAliases(projection) {
|
|
457
|
+
var _a;
|
|
458
|
+
const children = projection.getChildren();
|
|
459
|
+
for (let i = 0; i < children.length; i++) {
|
|
460
|
+
const expr = children[i];
|
|
461
|
+
const alias = (_a = expr.alias) !== null && _a !== void 0 ? _a : `expr${i}`;
|
|
462
|
+
if (typeof alias === "string" && alias.length > 0) {
|
|
463
|
+
yield alias;
|
|
464
|
+
}
|
|
243
465
|
}
|
|
244
466
|
}
|
|
245
467
|
collectSources(statement, target) {
|
|
@@ -297,6 +519,85 @@ class StatementInfoCrawler {
|
|
|
297
519
|
set.add(prop);
|
|
298
520
|
}
|
|
299
521
|
}
|
|
522
|
+
addNodeLiteralValue(labels, prop, value) {
|
|
523
|
+
for (const label of labels) {
|
|
524
|
+
if (!label)
|
|
525
|
+
continue;
|
|
526
|
+
let propMap = this._nodeLiterals.get(label);
|
|
527
|
+
if (propMap === undefined) {
|
|
528
|
+
propMap = new Map();
|
|
529
|
+
this._nodeLiterals.set(label, propMap);
|
|
530
|
+
}
|
|
531
|
+
this.appendUniqueLiteral(propMap, prop, value);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
addRelLiteralValue(types, prop, value) {
|
|
535
|
+
for (const type of types) {
|
|
536
|
+
if (!type)
|
|
537
|
+
continue;
|
|
538
|
+
let propMap = this._relLiterals.get(type);
|
|
539
|
+
if (propMap === undefined) {
|
|
540
|
+
propMap = new Map();
|
|
541
|
+
this._relLiterals.set(type, propMap);
|
|
542
|
+
}
|
|
543
|
+
this.appendUniqueLiteral(propMap, prop, value);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
appendUniqueLiteral(propMap, prop, value) {
|
|
547
|
+
let arr = propMap.get(prop);
|
|
548
|
+
if (arr === undefined) {
|
|
549
|
+
arr = [];
|
|
550
|
+
propMap.set(prop, arr);
|
|
551
|
+
}
|
|
552
|
+
for (const existing of arr) {
|
|
553
|
+
if (this.literalsEqual(existing, value))
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
arr.push(value);
|
|
557
|
+
}
|
|
558
|
+
literalsEqual(a, b) {
|
|
559
|
+
if (a === b)
|
|
560
|
+
return true;
|
|
561
|
+
if (a === null || b === null || a === undefined || b === undefined)
|
|
562
|
+
return false;
|
|
563
|
+
if (typeof a !== typeof b)
|
|
564
|
+
return false;
|
|
565
|
+
if (typeof a !== "object")
|
|
566
|
+
return false;
|
|
567
|
+
if (Array.isArray(a) !== Array.isArray(b))
|
|
568
|
+
return false;
|
|
569
|
+
if (Array.isArray(a)) {
|
|
570
|
+
if (a.length !== b.length)
|
|
571
|
+
return false;
|
|
572
|
+
for (let i = 0; i < a.length; i++) {
|
|
573
|
+
if (!this.literalsEqual(a[i], b[i]))
|
|
574
|
+
return false;
|
|
575
|
+
}
|
|
576
|
+
return true;
|
|
577
|
+
}
|
|
578
|
+
const ka = Object.keys(a);
|
|
579
|
+
const kb = Object.keys(b);
|
|
580
|
+
if (ka.length !== kb.length)
|
|
581
|
+
return false;
|
|
582
|
+
for (const k of ka) {
|
|
583
|
+
if (!Object.prototype.hasOwnProperty.call(b, k))
|
|
584
|
+
return false;
|
|
585
|
+
if (!this.literalsEqual(a[k], b[k]))
|
|
586
|
+
return false;
|
|
587
|
+
}
|
|
588
|
+
return true;
|
|
589
|
+
}
|
|
590
|
+
literalsSnapshot(map, key) {
|
|
591
|
+
const propMap = map.get(key);
|
|
592
|
+
if (propMap === undefined || propMap.size === 0)
|
|
593
|
+
return {};
|
|
594
|
+
const out = {};
|
|
595
|
+
const sortedKeys = Array.from(propMap.keys()).sort();
|
|
596
|
+
for (const propKey of sortedKeys) {
|
|
597
|
+
out[propKey] = [...propMap.get(propKey)];
|
|
598
|
+
}
|
|
599
|
+
return out;
|
|
600
|
+
}
|
|
300
601
|
snapshot() {
|
|
301
602
|
const allSources = new Set();
|
|
302
603
|
const nodes = {};
|
|
@@ -310,6 +611,7 @@ class StatementInfoCrawler {
|
|
|
310
611
|
nodes[label] = {
|
|
311
612
|
properties: props ? Array.from(props).sort() : [],
|
|
312
613
|
sources: sources ? Array.from(sources).sort() : [],
|
|
614
|
+
literal_values: this.literalsSnapshot(this._nodeLiterals, label),
|
|
313
615
|
};
|
|
314
616
|
}
|
|
315
617
|
const relationships = {};
|
|
@@ -323,8 +625,31 @@ class StatementInfoCrawler {
|
|
|
323
625
|
relationships[type] = {
|
|
324
626
|
properties: props ? Array.from(props).sort() : [],
|
|
325
627
|
sources: sources ? Array.from(sources).sort() : [],
|
|
628
|
+
literal_values: this.literalsSnapshot(this._relLiterals, type),
|
|
326
629
|
};
|
|
327
630
|
}
|
|
631
|
+
const declaredNodes = {};
|
|
632
|
+
for (const label of this._nodeLabels) {
|
|
633
|
+
const props = this._nodeDeclaredProps.get(label);
|
|
634
|
+
const sources = this._nodeDeclaredSources.get(label);
|
|
635
|
+
if ((props && props.size > 0) || (sources && sources.size > 0)) {
|
|
636
|
+
declaredNodes[label] = {
|
|
637
|
+
properties: props ? Array.from(props).sort() : [],
|
|
638
|
+
sources: sources ? Array.from(sources).sort() : [],
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
const declaredRelationships = {};
|
|
643
|
+
for (const type of this._relTypes) {
|
|
644
|
+
const props = this._relDeclaredProps.get(type);
|
|
645
|
+
const sources = this._relDeclaredSources.get(type);
|
|
646
|
+
if ((props && props.size > 0) || (sources && sources.size > 0)) {
|
|
647
|
+
declaredRelationships[type] = {
|
|
648
|
+
properties: props ? Array.from(props).sort() : [],
|
|
649
|
+
sources: sources ? Array.from(sources).sort() : [],
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
}
|
|
328
653
|
const info = {
|
|
329
654
|
node_labels: Array.from(this._nodeLabels).sort(),
|
|
330
655
|
relationship_types: Array.from(this._relTypes).sort(),
|
|
@@ -333,6 +658,10 @@ class StatementInfoCrawler {
|
|
|
333
658
|
relationship_properties: {},
|
|
334
659
|
nodes,
|
|
335
660
|
relationships,
|
|
661
|
+
declared: {
|
|
662
|
+
nodes: declaredNodes,
|
|
663
|
+
relationships: declaredRelationships,
|
|
664
|
+
},
|
|
336
665
|
};
|
|
337
666
|
for (const [label, props] of this._nodeProps) {
|
|
338
667
|
info.node_properties[label] = Array.from(props).sort();
|
|
@@ -346,13 +675,33 @@ class StatementInfoCrawler {
|
|
|
346
675
|
* Returns a deep copy of a StatementInfo so callers can mutate it freely.
|
|
347
676
|
*/
|
|
348
677
|
static clone(info) {
|
|
678
|
+
var _a, _b, _c, _d;
|
|
349
679
|
const cloneProps = (props) => {
|
|
350
680
|
const out = {};
|
|
351
681
|
for (const [k, v] of Object.entries(props))
|
|
352
682
|
out[k] = [...v];
|
|
353
683
|
return out;
|
|
354
684
|
};
|
|
685
|
+
const cloneLiterals = (literals) => {
|
|
686
|
+
const out = {};
|
|
687
|
+
for (const [k, v] of Object.entries(literals)) {
|
|
688
|
+
out[k] = v.map((item) => typeof item === "object" && item !== null ? structuredClone(item) : item);
|
|
689
|
+
}
|
|
690
|
+
return out;
|
|
691
|
+
};
|
|
355
692
|
const cloneEntities = (entities) => {
|
|
693
|
+
var _a;
|
|
694
|
+
const out = {};
|
|
695
|
+
for (const [k, v] of Object.entries(entities)) {
|
|
696
|
+
out[k] = {
|
|
697
|
+
properties: [...v.properties],
|
|
698
|
+
sources: [...v.sources],
|
|
699
|
+
literal_values: cloneLiterals((_a = v.literal_values) !== null && _a !== void 0 ? _a : {}),
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
return out;
|
|
703
|
+
};
|
|
704
|
+
const cloneDeclared = (entities) => {
|
|
356
705
|
const out = {};
|
|
357
706
|
for (const [k, v] of Object.entries(entities)) {
|
|
358
707
|
out[k] = {
|
|
@@ -370,6 +719,10 @@ class StatementInfoCrawler {
|
|
|
370
719
|
relationship_properties: cloneProps(info.relationship_properties),
|
|
371
720
|
nodes: cloneEntities(info.nodes),
|
|
372
721
|
relationships: cloneEntities(info.relationships),
|
|
722
|
+
declared: {
|
|
723
|
+
nodes: cloneDeclared((_b = (_a = info.declared) === null || _a === void 0 ? void 0 : _a.nodes) !== null && _b !== void 0 ? _b : {}),
|
|
724
|
+
relationships: cloneDeclared((_d = (_c = info.declared) === null || _c === void 0 ? void 0 : _c.relationships) !== null && _d !== void 0 ? _d : {}),
|
|
725
|
+
},
|
|
373
726
|
};
|
|
374
727
|
}
|
|
375
728
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement_info_crawler.js","sourceRoot":"","sources":["../../src/parsing/statement_info_crawler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statement_info_crawler.js","sourceRoot":"","sources":["../../src/parsing/statement_info_crawler.ts"],"names":[],"mappings":";;;;;AAAA,iEAAyC;AACzC,yDAAiC;AACjC,yEAAiD;AACjD,0DAAiC;AACjC,sEAA8C;AAE9C,sEAA6C;AAC7C,0EAAkD;AAClD,qDAAoD;AACpD,4FAAmE;AACnE,wEAAgD;AAChD,4FAAmE;AACnE,uFAA8D;AAC9D,mFAA0D;AAC1D,2EAAkD;AAClD,2FAAkE;AAClE,2EAAkD;AAClD,2FAAkE;AAClE,6DAAqC;AACrC,+DAAuC;AAEvC,qEAA4C;AAE5C,iEAAyC;AACzC,6DAAqC;AAiHrC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,oBAAoB;IAA1B;QACY,gBAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;QACrC,cAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;QACnC,eAAU,GAA6B,IAAI,GAAG,EAAE,CAAC;QACjD,cAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;QAChD,iBAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;QACnD,gBAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;QAClD,kBAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;QAC3D,iBAAY,GAAoC,IAAI,GAAG,EAAE,CAAC;QAC1D,uBAAkB,GAA6B,IAAI,GAAG,EAAE,CAAC;QACzD,sBAAiB,GAA6B,IAAI,GAAG,EAAE,CAAC;QACxD,yBAAoB,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC3D,wBAAmB,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC1D,0BAAqB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC/C,wBAAmB,GAAgB,IAAI,GAAG,EAAE,CAAC;QACrD;;;;WAIG;QACK,oBAAe,GAAiD,EAAE,CAAC;QACnE,mBAAc,GAAgD,EAAE,CAAC;IA8oB7E,CAAC;IA5oBG;;;;;OAKG;IACI,KAAK,CAAC,UAAuC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,UAAuC;QACtD,IAAI,UAAU,YAAY,kBAAO,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,IAAa;QAChC,IAAI,EAAE,GAAqB,IAAI,CAAC;QAChC,IAAI,CAAC;YACD,EAAE,GAAG,IAAI,CAAC,UAAU,EAAe,CAAC;QACxC,CAAC;QAAC,WAAM,CAAC;YACL,OAAO;QACX,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACxB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,EAAa;;QAChC,IAAI,EAAE,YAAY,qBAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACrB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,YAAY,6BAAkB,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;YAC5B,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACL,CAAC;YACD,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,EAAE,YAAY,qBAAU,EAAE,CAAC;YAClC,IAAI,MAAA,EAAE,CAAC,IAAI,0CAAE,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,EAAE,YAAY,6BAAkB,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;YAC5B,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,EAAE,YAAY,eAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAChC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,OAAO,YAAY,cAAI,EAAE,CAAC;wBAC1B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM;4BAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC5D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;4BAC1C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBAC1D,CAAC;oBACL,CAAC;yBAAM,IAAI,OAAO,YAAY,sBAAY,EAAE,CAAC;wBACzC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK;4BAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACrD,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;4BACxC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBACxD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,qEAAqE;QACrE,IACI,CAAC,CAAC,EAAE,YAAY,qBAAU,CAAC;YAC3B,CAAC,CAAC,EAAE,YAAY,6BAAkB,CAAC;YACnC,CAAC,CAAC,EAAE,YAAY,qBAAU,CAAC;YAC3B,CAAC,CAAC,EAAE,YAAY,6BAAkB,CAAC,EACrC,CAAC;YACC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,4BAA4B;QAChC,qEAAqE;QACrE,6BAA6B;QAC7B,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,iEAAiE;QACjE,mEAAmE;QACnE,iCAAiC;QACjC,MAAM,EAAE,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,cAAc,CACf,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CACrD,CAAC;gBACF,IAAI,CAAC,oBAAoB,CACrB,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CACnD,CAAC;YACN,CAAC;QACL,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YACpC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACrB,IAAI,CAAC,cAAc,CACf,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAC3C,CAAC;oBACF,IAAI,CAAC,cAAc,CACf,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CACnD,CAAC;oBACF,IAAI,CAAC,oBAAoB,CACrB,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CACjD,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,GAA6B,EAAE,GAAW;QAC1D,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,IAAa;QACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW,CAAC;QACnC,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,IAAI,YAAY,gBAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,IAAI,YAAY,iBAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,YAAY,aAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,+DAA+D;YAC/D,sDAAsD;YACtD,IAAI,IAAI,YAAY,6BAAkB,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAI,IAAY,CAAC,YAAmC,CAAC;gBAChE,IAAI,KAAK,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,+DAA+D;YAC/D,+DAA+D;YAC/D,IAAI,IAAI,YAAY,gBAAM,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAI,IAAY,CAAC,MAAwB,CAAC;gBACjD,MAAM,CAAC,GAAI,IAAY,CAAC,QAA0B,CAAC;gBACnD,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,4DAA4D;YAC5D,yDAAyD;YACzD,cAAc;YACd,IAAI,IAAI,YAAY,kBAAO,EAAE,CAAC;gBAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CACvB,MAAc;QAKd,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,YAAY,mBAAS,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACpF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,IAAI,QAAQ,YAAY,cAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACrE,CAAC;QACD,IAAI,QAAQ,YAAY,sBAAY,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAAC,EAAU;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QACnB,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QACnB,4EAA4E;QAC5E,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEO,qBAAqB,CAAC,IAAa,EAAE,KAAc;QACvD,IAAI,CAAC,CAAC,IAAI,YAAY,gBAAM,CAAC;YAAE,OAAO;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,EAAM;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QACnB,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,CAAC,GAAG,YAAY,gBAAM,CAAC;YAAE,OAAO;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,IAAa;QAC9B,IACI,IAAI,YAAY,mBAAS;YACzB,IAAI,YAAY,6BAAkB;YAClC,IAAI,YAAY,gBAAM;YACtB,IAAI,YAAY,kBAAO;YACvB,IAAI,YAAY,6BAAkB,EACpC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,IAAa;QAC9B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAAC,WAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,MAAgB,EAAE,IAAY,EAAE,IAAgB;QACtE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAEO,gBAAgB,CAAC,KAAe,EAAE,IAAY,EAAE,IAAgB;QACpE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,SAAkB,EAAE,MAAmB;QAChE,IAAI,EAAE,GAAqB,IAAI,CAAC;QAChC,IAAI,CAAC;YACD,EAAE,GAAG,SAAS,CAAC,UAAU,EAAe,CAAC;QAC7C,CAAC;QAAC,WAAM,CAAC;YACL,OAAO;QACX,CAAC;QACD,IAAI,UAAU,GAAsB,IAAI,CAAC;QACzC,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,EAAE,YAAY,gBAAM,IAAI,EAAE,YAAY,2BAAgB,EAAE,CAAC;gBACzD,UAAU,GAAG,EAAE,CAAC;YACpB,CAAC;iBAAM,IAAI,EAAE,YAAY,cAAI,IAAI,EAAE,YAAY,yBAAc,EAAE,CAAC;gBAC5D,QAAQ,GAAG,EAAE,CAAC;YAClB,CAAC;YACD,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;QACD,MAAM,UAAU,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,QAAQ,CAAC;QAC1C,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,CAAC,iBAAiB,CAAC,UAAsB;;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAe,CAAC;YACvC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,SAAkB,EAAE,MAAmB;;QAC1D,IAAI,EAAE,GAAqB,IAAI,CAAC;QAChC,IAAI,CAAC;YACD,EAAE,GAAG,SAAS,CAAC,UAAU,EAAe,CAAC;QAC7C,CAAC;QAAC,WAAM,CAAC;YACL,OAAO;QACX,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,EAAE,YAAY,cAAI,EAAE,CAAC;gBACrB,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAA,EAAE,CAAC,aAAa,0CAAE,IAAI,CAAC;oBACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC;wBACD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;wBACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;4BAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACtE,CAAC;oBAAC,WAAM,CAAC;wBACL,uDAAuD;wBACvD,6CAA6C;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;YACD,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,MAAgB,EAAE,IAAY;QAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,KAAe,EAAE,IAAY;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,MAAgB,EAAE,IAAY,EAAE,KAAU;QAClE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAe,EAAE,IAAY,EAAE,KAAU;QAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,OAA2B,EAAE,IAAY,EAAE,KAAU;QAC7E,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAAE,OAAO;QACpD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,CAAM,EAAE,CAAM;QAChC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACjF,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,gBAAgB,CACpB,GAAoC,EACpC,GAAW;QAEX,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3D,MAAM,GAAG,GAA0B,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,QAAQ;QACZ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,GAAG;gBACX,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClD,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;aACnE,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAAqC,EAAE,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG;gBAClB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClD,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;aACjE,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAAuC,EAAE,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7D,aAAa,CAAC,KAAK,CAAC,GAAG;oBACnB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;oBACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;iBACrD,CAAC;YACN,CAAC;QACL,CAAC;QACD,MAAM,qBAAqB,GAAuC,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7D,qBAAqB,CAAC,IAAI,CAAC,GAAG;oBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;oBACjD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;iBACrD,CAAC;YACN,CAAC;QACL,CAAC;QACD,MAAM,IAAI,GAAkB;YACxB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;YAChD,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;YACrD,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;YACtC,eAAe,EAAE,EAAE;YACnB,uBAAuB,EAAE,EAAE;YAC3B,KAAK;YACL,aAAa;YACb,QAAQ,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,qBAAqB;aACvC;SACJ,CAAC;QACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,IAAmB;;QACnC,MAAM,UAAU,GAAG,CAAC,KAA+B,EAA4B,EAAE;YAC7E,MAAM,GAAG,GAA6B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,QAA+B,EAAyB,EAAE;YAC7E,MAAM,GAAG,GAA0B,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3E,CAAC;YACN,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAClB,QAA2B,EACV,EAAE;;YACnB,MAAM,GAAG,GAAsB,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG;oBACL,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;oBAC7B,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBACvB,cAAc,EAAE,aAAa,CAAC,MAAA,CAAC,CAAC,cAAc,mCAAI,EAAE,CAAC;iBACnD,CAAC;YACX,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAClB,QAA4C,EACV,EAAE;YACpC,MAAM,GAAG,GAAuC,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG;oBACL,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;oBAC7B,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;iBAC1B,CAAC;YACN,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QACF,OAAO;YACH,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;YACjD,uBAAuB,EAAE,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC;YACjE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;YAChD,QAAQ,EAAE;gBACN,KAAK,EAAE,aAAa,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,mCAAI,EAAE,CAAC;gBAChD,aAAa,EAAE,aAAa,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,aAAa,mCAAI,EAAE,CAAC;aACnE;SACJ,CAAC;IACN,CAAC;CACJ;AAED,kBAAe,oBAAoB,CAAC"}
|