@nithin554/code-crawler 0.1.38 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +206 -33
  2. package/dist/crawler.d.ts +27 -1
  3. package/dist/crawler.js +360 -11
  4. package/dist/crawler.js.map +1 -1
  5. package/dist/graph/queries.d.ts +70 -4
  6. package/dist/graph/queries.js +125 -1
  7. package/dist/graph/queries.js.map +1 -1
  8. package/dist/graph/schema.d.ts +24 -2
  9. package/dist/graph/schema.js +9 -0
  10. package/dist/graph/schema.js.map +1 -1
  11. package/dist/parser/controlFlow.d.ts +27 -0
  12. package/dist/parser/controlFlow.js +82 -0
  13. package/dist/parser/controlFlow.js.map +1 -0
  14. package/dist/parser/language.d.ts +101 -2
  15. package/dist/parser/languages/index.js +4 -0
  16. package/dist/parser/languages/index.js.map +1 -1
  17. package/dist/parser/languages/java.js +160 -6
  18. package/dist/parser/languages/java.js.map +1 -1
  19. package/dist/parser/languages/python.d.ts +2 -0
  20. package/dist/parser/languages/python.js +956 -0
  21. package/dist/parser/languages/python.js.map +1 -0
  22. package/dist/parser/languages/typescript.d.ts +2 -0
  23. package/dist/parser/languages/typescript.js +1111 -0
  24. package/dist/parser/languages/typescript.js.map +1 -0
  25. package/dist/parser/moduleId.d.ts +35 -0
  26. package/dist/parser/moduleId.js +93 -0
  27. package/dist/parser/moduleId.js.map +1 -0
  28. package/dist/parser/treeSitter.d.ts +6 -0
  29. package/dist/parser/treeSitter.js +13 -2
  30. package/dist/parser/treeSitter.js.map +1 -1
  31. package/dist/resolver/common.d.ts +52 -0
  32. package/dist/resolver/common.js +624 -0
  33. package/dist/resolver/common.js.map +1 -0
  34. package/dist/resolver/dynamic.js +66 -1
  35. package/dist/resolver/dynamic.js.map +1 -1
  36. package/dist/resolver/genericResolver.d.ts +45 -0
  37. package/dist/resolver/genericResolver.js +235 -0
  38. package/dist/resolver/genericResolver.js.map +1 -0
  39. package/dist/resolver/types.d.ts +24 -1
  40. package/dist/resolver/types.js +50 -0
  41. package/dist/resolver/types.js.map +1 -1
  42. package/dist/server.js +108 -5
  43. package/dist/server.js.map +1 -1
  44. package/package.json +2 -2
package/dist/crawler.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { annotationNodeId, fieldNodeId, importNodeId } from "./graph/schema.js";
3
+ import { annotationNodeId, externalNodeId, fieldNodeId, importNodeId } from "./graph/schema.js";
4
4
  import { languageForFile } from "./parser/languages/index.js";
5
5
  import { buildTypeIndex, phantomNodeId } from "./resolver/types.js";
6
6
  import { resolveJavaFile } from "./resolver/javaResolver.js";
7
+ import { resolveGenericFile, resolveInjectionTarget, resolveReflectiveTarget, resolveRouteHandler } from "./resolver/genericResolver.js";
8
+ import { normalizeTypeText, resolveTypeCandidates } from "./resolver/common.js";
7
9
  import { buildDynamicEdges, isDecoratorAnnotation } from "./resolver/dynamic.js";
8
10
  /** Discover source files under a project, respecting exclusion dirs. */
9
11
  export function discoverSourceFiles(projectPath, excludeDirs, language) {
@@ -117,6 +119,14 @@ export function buildDeclarationGraph(parsed) {
117
119
  endLine: t.endLine,
118
120
  annotations: t.annotations.map((a) => a.name),
119
121
  ...(t.isAspect ? { aspect: true } : {}),
122
+ ...(t.exported === false ? { exported: false } : {}),
123
+ ...(t.kind === "module" && parsed.entryPoint
124
+ ? {
125
+ entryPoint: true,
126
+ entryPointKind: parsed.entryPoint.kind,
127
+ entryPointDetail: parsed.entryPoint.detail ?? parsed.entryPoint.kind,
128
+ }
129
+ : {}),
120
130
  },
121
131
  });
122
132
  edges.push({ source: fileId, target: t.id, kind: "CONTAINS", properties: {} });
@@ -147,6 +157,13 @@ export function buildDeclarationGraph(parsed) {
147
157
  annotations: m.annotations.map((a) => a.name),
148
158
  ...(m.adviceKind ? { adviceKind: m.adviceKind } : {}),
149
159
  ...(m.pointcut ? { pointcut: m.pointcut } : {}),
160
+ ...(m.entryPoint
161
+ ? {
162
+ entryPoint: true,
163
+ entryPointKind: m.entryPoint.kind,
164
+ entryPointDetail: m.entryPoint.detail ?? m.entryPoint.kind,
165
+ }
166
+ : {}),
150
167
  },
151
168
  });
152
169
  edges.push({
@@ -203,14 +220,44 @@ function dedupeEdges(edges) {
203
220
  export function buildCallEdges(parsed, index, knownNodeIds) {
204
221
  const edges = [];
205
222
  const phantomNodes = [];
223
+ const externalPackages = new Set();
206
224
  let resolved = 0;
207
225
  let unresolved = 0;
226
+ let external = 0;
208
227
  const javaParsed = parsed;
209
- const resolvedCalls = parsed.language === "java" ? resolveJavaFile(javaParsed, index) : [];
228
+ const resolvedCalls = parsed.language === "java" ? resolveJavaFile(javaParsed, index) : resolveGenericFile(parsed, index);
210
229
  for (const rc of resolvedCalls) {
211
230
  // Calls in field/static initializers have no enclosing method; attribute
212
231
  // them to the enclosing type so the edge always has a valid source.
213
232
  const source = rc.callSite.enclosingMethodId || rc.callSite.enclosingTypeId;
233
+ const flowProps = rc.callSite.controlFlow
234
+ ? {
235
+ conditional: rc.callSite.controlFlow.kinds.includes("branch") ||
236
+ rc.callSite.controlFlow.kinds.includes("exception"),
237
+ ...(rc.callSite.controlFlow.guards.length > 0
238
+ ? { guards: rc.callSite.controlFlow.guards }
239
+ : {}),
240
+ }
241
+ : {};
242
+ const flowKind = rc.callSite.controlFlow
243
+ ? { controlFlow: rc.callSite.controlFlow.kinds }
244
+ : {};
245
+ if (rc.external) {
246
+ external++;
247
+ const pkg = rc.externalModule ?? "unknown";
248
+ externalPackages.add(pkg);
249
+ const extId = externalNodeId(pkg);
250
+ if (!knownNodeIds.has(extId)) {
251
+ phantomNodes.push({
252
+ id: extId,
253
+ kind: "external_symbol",
254
+ qualifiedName: extId,
255
+ filePath: null,
256
+ properties: { name: pkg, package: pkg, external: true },
257
+ });
258
+ knownNodeIds.add(extId);
259
+ }
260
+ }
214
261
  if (rc.resolved) {
215
262
  resolved++;
216
263
  // Targets can reference synthetic methods (e.g. implicit default
@@ -239,6 +286,8 @@ export function buildCallEdges(parsed, index, knownNodeIds) {
239
286
  resolved: true,
240
287
  confidence: Math.round(rc.confidence * 100) / 100,
241
288
  reason: rc.reason,
289
+ ...flowProps,
290
+ ...flowKind,
242
291
  },
243
292
  });
244
293
  }
@@ -264,11 +313,256 @@ export function buildCallEdges(parsed, index, knownNodeIds) {
264
313
  resolved: false,
265
314
  confidence: 0,
266
315
  reason: rc.reason,
316
+ ...flowProps,
317
+ ...flowKind,
267
318
  },
268
319
  });
269
320
  }
270
321
  }
271
- return { edges, phantomNodes, resolved, unresolved };
322
+ return { edges, phantomNodes, resolved, unresolved, external, externalPackages };
323
+ }
324
+ /**
325
+ * Framework wiring that the language parsers surface but the plain call
326
+ * resolver cannot see: external dependencies, dependency injection,
327
+ * reflective lookups and route registrations.
328
+ */
329
+ export function buildDependencyGraph(parsed, index, knownNodeIds) {
330
+ const nodes = [];
331
+ const edges = [];
332
+ const entryPointMarks = new Map();
333
+ const externalDependencies = new Set();
334
+ let injections = 0;
335
+ let reflections = 0;
336
+ let routes = 0;
337
+ const externalNode = (pkg) => {
338
+ const id = externalNodeId(pkg);
339
+ if (!knownNodeIds.has(id)) {
340
+ nodes.push({
341
+ id,
342
+ kind: "external_symbol",
343
+ qualifiedName: id,
344
+ filePath: null,
345
+ properties: { name: pkg, package: pkg, external: true },
346
+ });
347
+ knownNodeIds.add(id);
348
+ }
349
+ externalDependencies.add(pkg);
350
+ return id;
351
+ };
352
+ const unknownNode = (id, name, props) => {
353
+ if (!knownNodeIds.has(id)) {
354
+ nodes.push({
355
+ id,
356
+ kind: "unknown_symbol",
357
+ qualifiedName: id,
358
+ filePath: parsed.filePath,
359
+ properties: { name, ...props },
360
+ });
361
+ knownNodeIds.add(id);
362
+ }
363
+ return id;
364
+ };
365
+ // External imports become first-class nodes so unused third-party surface
366
+ // is queryable instead of silently dropped.
367
+ for (const imp of parsed.imports) {
368
+ if (!imp.module || isRelativeSpecifier(imp.module))
369
+ continue;
370
+ const candidate = imp.module.replace(/^\?suffix:/, "");
371
+ if (index.moduleExists(candidate) || index.matchModuleSuffix(candidate).length > 0)
372
+ continue;
373
+ const pkg = externalPackageOf(imp.module);
374
+ if (!pkg)
375
+ continue;
376
+ const target = externalNode(pkg);
377
+ edges.push({
378
+ source: importNodeId(imp.fqn),
379
+ target,
380
+ kind: "REFERENCES",
381
+ properties: {
382
+ external: true,
383
+ member: imp.importedName ?? imp.simpleName,
384
+ },
385
+ });
386
+ }
387
+ for (const inj of parsed.injections ?? []) {
388
+ const owner = inj.ownerId;
389
+ if (!owner)
390
+ continue;
391
+ injections++;
392
+ // Primitive/structural types carry no dependency identity, so they get a
393
+ // count but no target edge (`@Body() body: { id: string }`).
394
+ if (isBuiltinTypeText(inj.type))
395
+ continue;
396
+ const scoped = resolveTypeCandidates(parsed, index, inj.type);
397
+ let target = scoped.length === 1 ? scoped[0] : undefined;
398
+ let isExternal = false;
399
+ if (!target && parsed.language !== "java") {
400
+ const resolved = resolveInjectionTarget(parsed, index, inj.type);
401
+ if (resolved?.targetId) {
402
+ target = resolved.targetId.startsWith("ext:") ? externalNode(resolved.external ?? inj.type) : resolved.targetId;
403
+ isExternal = Boolean(resolved.external);
404
+ }
405
+ }
406
+ if (!target)
407
+ target = unknownNode(`__inject__:${inj.type || inj.name}`, inj.type || inj.name, { reason: "unresolved injected type" });
408
+ edges.push({
409
+ source: owner,
410
+ target,
411
+ kind: "INJECTS",
412
+ properties: {
413
+ line: inj.line,
414
+ injectedName: inj.name,
415
+ framework: inj.framework,
416
+ ...(isExternal ? { external: true } : {}),
417
+ },
418
+ });
419
+ }
420
+ for (const ref of parsed.reflectiveRefs ?? []) {
421
+ const owner = ref.enclosingMethodId || ref.enclosingTypeId;
422
+ if (!owner)
423
+ continue;
424
+ const resolved = resolveReflectiveTarget(parsed, index, ref);
425
+ let target = resolved?.targetId;
426
+ let isExternal = false;
427
+ const targetLabel = ref.target || ref.receiver || ref.mechanism;
428
+ if (target && target.startsWith("ext:") && !isRelativeSpecifier(ref.target) && !isProjectInternalTarget(ref.target, index)) {
429
+ target = externalNode(resolved?.external ?? targetLabel);
430
+ isExternal = true;
431
+ }
432
+ else if (!target || target.startsWith("ext:")) {
433
+ // Relative specifiers (`./plugins/${name}`) stay inside the project but
434
+ // cannot be named statically, so they are recorded, not externalised.
435
+ target = unknownNode(`__reflect__:${targetLabel}`, targetLabel, {
436
+ reason: "unresolved reflective target",
437
+ mechanism: ref.mechanism,
438
+ });
439
+ }
440
+ reflections++;
441
+ edges.push({
442
+ source: owner,
443
+ target,
444
+ kind: "REFLECTS",
445
+ properties: {
446
+ line: ref.line,
447
+ mechanism: ref.mechanism,
448
+ ...(isExternal ? { external: true } : {}),
449
+ },
450
+ });
451
+ }
452
+ for (const route of parsed.routes ?? []) {
453
+ const owner = route.enclosingTypeId;
454
+ if (!owner)
455
+ continue;
456
+ const handlerId = resolveRouteHandler(parsed, index, route.handlerName, route.moduleId);
457
+ if (!handlerId)
458
+ continue;
459
+ routes++;
460
+ edges.push({
461
+ source: owner,
462
+ target: handlerId,
463
+ kind: "ROUTES",
464
+ properties: {
465
+ line: route.line,
466
+ framework: route.framework,
467
+ httpMethod: route.httpMethod,
468
+ path: route.path,
469
+ },
470
+ });
471
+ entryPointMarks.set(handlerId, {
472
+ kind: "http",
473
+ detail: `${route.httpMethod} ${route.path}`,
474
+ });
475
+ }
476
+ if (parsed.entryPoint) {
477
+ const moduleType = parsed.types.find((t) => t.kind === "module");
478
+ if (moduleType)
479
+ entryPointMarks.set(moduleType.id, parsed.entryPoint);
480
+ }
481
+ return {
482
+ nodes,
483
+ edges,
484
+ entryPointMarks,
485
+ injections,
486
+ reflections,
487
+ routes,
488
+ externalDependencies,
489
+ };
490
+ }
491
+ /** Type texts that name no project entity: primitives and inline structures. */
492
+ const BUILTIN_TYPE_NAMES = new Set([
493
+ "string",
494
+ "number",
495
+ "boolean",
496
+ "any",
497
+ "unknown",
498
+ "void",
499
+ "never",
500
+ "object",
501
+ "symbol",
502
+ "bigint",
503
+ "null",
504
+ "undefined",
505
+ "str",
506
+ "int",
507
+ "float",
508
+ "bool",
509
+ "bytes",
510
+ "bytearray",
511
+ "list",
512
+ "dict",
513
+ "set",
514
+ "tuple",
515
+ "frozenset",
516
+ "None",
517
+ "Any",
518
+ "Optional",
519
+ ]);
520
+ function isBuiltinTypeText(raw) {
521
+ const text = normalizeTypeText(raw);
522
+ if (!text)
523
+ return false;
524
+ if (BUILTIN_TYPE_NAMES.has(text))
525
+ return true;
526
+ // Inline object/function types (`{ id: string }`, `() => void`).
527
+ return /[{}()=>]/.test(text);
528
+ }
529
+ /** True for `./x`, `../y` and `?suffix:` specifiers that stay in-project. */
530
+ function isRelativeSpecifier(specifier) {
531
+ const text = (specifier ?? "").trim();
532
+ return text.startsWith(".") || text.startsWith("?suffix:");
533
+ }
534
+ /**
535
+ * True when a run-time module lookup names a package the project itself owns.
536
+ * `importlib.import_module("app.plugins." + name)` yields the prefix
537
+ * `app.plugins.` — that is a project namespace, not a third-party library, so
538
+ * it must not be reported as an external dependency.
539
+ */
540
+ function isProjectInternalTarget(specifier, index) {
541
+ const dotted = (specifier ?? "")
542
+ .replace(/^\?suffix:/, "")
543
+ .replace(/^\.+\//, "")
544
+ .replace(/[/\\]/g, ".")
545
+ .replace(/\.+$/, "")
546
+ .trim();
547
+ const root = dotted.split(".")[0];
548
+ if (!root)
549
+ return false;
550
+ for (const moduleId of index.moduleIds) {
551
+ if (moduleId === root || moduleId.startsWith(`${root}.`))
552
+ return true;
553
+ }
554
+ return false;
555
+ }
556
+ /** First package/specifier segment of an import target. */
557
+ function externalPackageOf(specifier) {
558
+ const text = specifier.replace(/^\?suffix:/, "").trim();
559
+ if (!text)
560
+ return "";
561
+ if (text.startsWith("@")) {
562
+ const parts = text.split("/");
563
+ return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : text;
564
+ }
565
+ return text.split("/")[0]?.split(".")[0] ?? text;
272
566
  }
273
567
  /**
274
568
  * Crawl a project directory and index it into the store.
@@ -295,7 +589,7 @@ export async function crawlProject(store, projectPath, excludeDirs, options = {}
295
589
  const config = languageForFile(file, options.language);
296
590
  if (!config)
297
591
  continue;
298
- parsedFiles.push(await config.parseFile(source, file));
592
+ parsedFiles.push(await config.parseFile(source, file, { projectRoot: absPath }));
299
593
  }
300
594
  catch (err) {
301
595
  parseErrors.push(`${file}: ${err.message}`);
@@ -321,16 +615,54 @@ export async function crawlProject(store, projectPath, excludeDirs, options = {}
321
615
  // to external types can be dropped instead of violating FK constraints.
322
616
  const allNodeIds = new Set();
323
617
  const declarations = new Map();
618
+ const dependencyGraphs = new Map();
619
+ const entryPointMarks = new Map();
620
+ const externalDeps = new Set();
621
+ let totalInjections = 0;
622
+ let totalReflections = 0;
623
+ let totalRoutes = 0;
324
624
  for (const parsed of parsedFiles) {
325
625
  const decl = buildDeclarationGraph(parsed);
326
626
  declarations.set(parsed.filePath, decl);
327
627
  for (const n of decl.nodes)
328
628
  allNodeIds.add(n.id);
629
+ const deps = buildDependencyGraph(parsed, index, allNodeIds);
630
+ dependencyGraphs.set(parsed.filePath, deps);
631
+ for (const n of deps.nodes)
632
+ allNodeIds.add(n.id);
633
+ for (const [id, info] of deps.entryPointMarks)
634
+ entryPointMarks.set(id, info);
635
+ totalInjections += deps.injections;
636
+ totalReflections += deps.reflections;
637
+ totalRoutes += deps.routes;
638
+ for (const pkg of deps.externalDependencies)
639
+ externalDeps.add(pkg);
640
+ }
641
+ // Route handlers can live in a different file from the registration site,
642
+ // so entry-point markers are applied once every declaration exists.
643
+ for (const decl of declarations.values()) {
644
+ for (const node of decl.nodes) {
645
+ const mark = entryPointMarks.get(node.id);
646
+ if (!mark || node.properties.entryPoint)
647
+ continue;
648
+ node.properties = {
649
+ ...node.properties,
650
+ entryPoint: true,
651
+ entryPointKind: mark.kind,
652
+ entryPointDetail: mark.detail ?? mark.kind,
653
+ };
654
+ }
655
+ }
656
+ const entryPointIds = new Set();
657
+ for (const decl of declarations.values()) {
658
+ for (const node of decl.nodes) {
659
+ if (node.properties.entryPoint)
660
+ entryPointIds.add(node.id);
661
+ }
329
662
  }
330
663
  // Hierarchy metadata is emitted with whatever name the source used
331
664
  // (`implements Payment`), which is not always the fully-qualified node id.
332
- // Resolve unique simple names so EXTENDS/IMPLEMENTS edges survive the
333
- // project-membership filter below.
665
+ // Resolve imports first, then fall back to unique simple names.
334
666
  const typeIdsByName = new Map();
335
667
  for (const parsed of parsedFiles) {
336
668
  for (const t of parsed.types) {
@@ -340,19 +672,31 @@ export async function crawlProject(store, projectPath, excludeDirs, options = {}
340
672
  typeIdsByName.set(t.name, ids);
341
673
  }
342
674
  }
343
- const normalizeHierarchyTarget = (edge) => {
675
+ const byFilePath = new Map(parsedFiles.map((p) => [p.filePath, p]));
676
+ const normalizeHierarchyTarget = (edge, filePath) => {
344
677
  if (edge.kind !== "EXTENDS" && edge.kind !== "IMPLEMENTS")
345
678
  return edge;
346
679
  if (allNodeIds.has(edge.target))
347
680
  return edge;
348
- const candidates = typeIdsByName.get(edge.target);
681
+ const parsed = byFilePath.get(filePath);
682
+ if (parsed) {
683
+ const scoped = resolveTypeCandidates(parsed, index, edge.target).filter((id) => allNodeIds.has(id));
684
+ const only = scoped[0];
685
+ if (scoped.length === 1 && only)
686
+ return { ...edge, target: only };
687
+ }
688
+ const simple = edge.target.includes(".") ? edge.target.split(".").pop() ?? edge.target : edge.target;
689
+ const candidates = typeIdsByName.get(simple);
349
690
  const resolved = candidates?.length === 1 ? candidates[0] : undefined;
350
691
  return resolved ? { ...edge, target: resolved } : edge;
351
692
  };
352
693
  store.withTransaction(() => {
353
694
  for (const parsed of parsedFiles) {
354
695
  const decl = declarations.get(parsed.filePath);
696
+ const deps = dependencyGraphs.get(parsed.filePath);
355
697
  const calls = buildCallEdges(parsed, index, allNodeIds);
698
+ for (const pkg of calls.externalPackages)
699
+ externalDeps.add(pkg);
356
700
  for (const p of calls.phantomNodes)
357
701
  allNodeIds.add(p.id);
358
702
  // Phantom nodes must exist as edge endpoints (FK constraint).
@@ -361,10 +705,10 @@ export async function crawlProject(store, projectPath, excludeDirs, options = {}
361
705
  // Drop edges whose endpoints aren't part of the indexed project
362
706
  // (external EXTENDS/IMPLEMENTS/IMPORTS targets).
363
707
  const edges = decl.edges
364
- .map(normalizeHierarchyTarget)
365
- .concat(calls.edges)
708
+ .map((edge) => normalizeHierarchyTarget(edge, parsed.filePath))
709
+ .concat(calls.edges, deps.edges)
366
710
  .filter((e) => allNodeIds.has(e.source) && allNodeIds.has(e.target));
367
- const nodes = decl.nodes.concat(calls.phantomNodes);
711
+ const nodes = decl.nodes.concat(calls.phantomNodes, deps.nodes);
368
712
  store.replaceFile(parsed.filePath, nodes, edges);
369
713
  for (const edge of calls.edges) {
370
714
  if (allNodeIds.has(edge.source) && allNodeIds.has(edge.target)) {
@@ -407,6 +751,11 @@ export async function crawlProject(store, projectPath, excludeDirs, options = {}
407
751
  adviceEdges: adviceCount,
408
752
  aspects: aspectCount,
409
753
  decorators: totalDecorators,
754
+ entryPoints: entryPointIds.size,
755
+ injections: totalInjections,
756
+ reflections: totalReflections,
757
+ externalDependencies: externalDeps.size,
758
+ routes: totalRoutes,
410
759
  languages: [...new Set(parsedFiles.map((p) => p.language))],
411
760
  durationMs: Date.now() - started,
412
761
  };
@@ -1 +1 @@
1
- {"version":3,"file":"crawler.js","sourceRoot":"","sources":["../src/crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crawler.js","sourceRoot":"","sources":["../src/crawler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzI,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AA8CjF,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,WAAqB,EACrB,QAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,sCAAsC;QAChD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACtD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5E,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,sEAAsE;QACtE,yEAAyE;QACzE,iDAAiD;QACjD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM,CAAC,WAAW;YACtB,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,MAAM,CAAC,WAAW;YACjC,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,GAAG,CAAC,GAAG;YACtB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;SACjE,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,WAA6B,EAAQ,EAAE;QAC7E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;YAC/C,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClC,oEAAoE;YACpE,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,IAAI,EAAE,YAAY;gBAClB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,SAAS,EAAE,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC;iBAClD;aACF,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE;oBACV,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,SAAS,EAAE,UAAU,CAAC,SAAS;iBAChC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAa,CAAC,CAAC,QAAQ;YAC/B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;gBACvB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACb,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI;YACJ,aAAa,EAAE,CAAC,CAAC,EAAE;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU;oBAC1C,CAAC,CAAC;wBACE,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;wBACtC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI;qBACrE;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;YAChD,aAAa,EAAE,CAAC,CAAC,EAAE;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACxD,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,CAAC,CAAC,UAAU;oBACd,CAAC,CAAC;wBACE,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI;wBACjC,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI;qBAC3D;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;SAClC,CAAC,CAAC;QACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,CAAC,CAAC,EAAE;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAC9C;SACF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;SAClC,CAAC,CAAC;QACH,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAC5B,MAAkB,EAClB,KAAwC,EACxC,YAAyB;IASzB,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAgB,EAAE,CAAC;IACrC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,UAAU,GAAG,MAAwB,CAAC;IAC5C,MAAM,aAAa,GACjB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEtG,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5E,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW;YACvC,CAAC,CAAC;gBACE,WAAW,EACT,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACrD,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW;YACtC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,EAAE,CAAC,cAAc,IAAI,SAAS,CAAC;YAC3C,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC;oBAChB,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,iBAAiB;oBACvB,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACxD,CAAC,CAAC;gBACH,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;YACX,iEAAiE;YACjE,wEAAwE;YACxE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAc;oBAC3B,EAAE,EAAE,EAAE,CAAC,QAAQ;oBACf,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;oBAChE,aAAa,EAAE,EAAE,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ;wBAClF,SAAS,EAAE,IAAI;wBACf,MAAM,EAAE,EAAE,CAAC,MAAM;qBAClB;iBACF,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,MAAM,EAAE,EAAE,CAAC,QAAQ;gBACnB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;oBACjD,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,GAAG,SAAS;oBACZ,GAAG,QAAQ;iBACZ;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,gBAAgB;gBACtB,aAAa,EAAE,SAAS;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACvI,MAAM,EAAE,EAAE,CAAC,MAAM;iBAClB;aACF,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,GAAG,SAAS;oBACZ,GAAG,QAAQ;iBACZ;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAkB,EAClB,KAAwC,EACxC,YAAyB;IAUzB,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;QAC3C,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,EAAE;gBACjB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;aACxD,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,KAA8B,EAAU,EAAE;QACvF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,IAAI,EAAE,gBAAgB;gBACtB,aAAa,EAAE,EAAE;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE;aAC/B,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,0EAA0E;IAC1E,4CAA4C;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC7F,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7B,MAAM;YACN,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE;gBACV,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU;aAC3C;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,UAAU,EAAE,CAAC;QACb,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1C,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAuB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACvB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAChH,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,WAAW,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACtI,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,KAAK;YACb,MAAM;YACN,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,YAAY,EAAE,GAAG,CAAC,IAAI;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,eAAe,CAAC;QAC3D,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,MAAM,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAChC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC;QAChE,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3H,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC;YACzD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,GAAG,WAAW,CAAC,eAAe,WAAW,EAAE,EAAE,WAAW,EAAE;gBAC9D,MAAM,EAAE,8BAA8B;gBACtC,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,KAAK;YACb,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB;SACF,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;YAC7B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,UAAU;YAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,KAAK;QACL,KAAK;QACL,eAAe;QACf,UAAU;QACV,WAAW;QACX,MAAM;QACN,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;IACT,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,WAAW;IACX,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;IACX,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,WAAW;IACX,MAAM;IACN,KAAK;IACL,UAAU;CACX,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,iEAAiE;IACjE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,6EAA6E;AAC7E,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,SAAiB,EAAE,KAAwC;IAC1F,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SAC7B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,IAAI,EAAE,CAAC;IACV,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAiB,EACjB,WAAmB,EACnB,WAAqB,EACrB,OAAO,GAAiB,EAAE;IAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,KAAK,CAAC,MAAM,CACV,CAAC,EACD,KAAK,CAAC,MAAM,EACZ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,WAAW,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE1C,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC9B,KAAK,CAAC,GAAG,CAAC,kEAAkE,CAA6B,CAAC,GAAG,CAC5G,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACnB,CACF,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,sEAAsE;IACtE,yDAAyD;IACzD,MAAM,YAAY,GAAgB,EAAE,CAAC;IAErC,mEAAmE;IACnE,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoD,CAAC;IACjF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;IACpF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7D,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe;YAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7E,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC;QACnC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB;YAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU;gBAAE,SAAS;YAClD,IAAI,CAAC,UAAU,GAAG;gBAChB,GAAG,IAAI,CAAC,UAAU;gBAClB,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI,CAAC,IAAI;gBACzB,gBAAgB,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU;gBAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,wBAAwB,GAAG,CAAC,IAAe,EAAE,QAAgB,EAAa,EAAE;QAChF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QACvE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC7E,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CACnB,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI;gBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACrG,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC;IAEF,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;YAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAExD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,gBAAgB;gBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEhE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEzD,8DAA8D;YAC9D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY;gBAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAExD,gEAAgE;YAChE,iDAAiD;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;iBACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAC9D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;iBAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/E,CAAC,MAAM,CAAC;YACT,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC;YAChC,eAAe,IAAI,KAAK,CAAC,UAAU,CAAC;YACpC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACxB,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,KAAK,CAAC,iBAAiB,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAChF,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;QAC7C,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAClC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,OAAO;QACL,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,YAAY;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,aAAa;QAC5B,eAAe,EAAE,eAAe;QAChC,oBAAoB,EAAE,oBAAoB;QAC1C,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,aAAa,CAAC,IAAI;QAC/B,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,gBAAgB;QAC7B,oBAAoB,EAAE,YAAY,CAAC,IAAI;QACvC,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}