@ifc-lite/mcp 0.9.2 → 0.10.0

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 (57) hide show
  1. package/README.md +32 -1
  2. package/dist/backend-query.d.ts +41 -0
  3. package/dist/backend-query.d.ts.map +1 -0
  4. package/dist/backend-query.js +454 -0
  5. package/dist/backend-query.js.map +1 -0
  6. package/dist/headless-backend.d.ts +4 -3
  7. package/dist/headless-backend.d.ts.map +1 -1
  8. package/dist/headless-backend.js +26 -212
  9. package/dist/headless-backend.js.map +1 -1
  10. package/dist/overlay.d.ts +171 -0
  11. package/dist/overlay.d.ts.map +1 -0
  12. package/dist/overlay.js +300 -0
  13. package/dist/overlay.js.map +1 -0
  14. package/dist/resources/providers.d.ts.map +1 -1
  15. package/dist/resources/providers.js +28 -27
  16. package/dist/resources/providers.js.map +1 -1
  17. package/dist/schema-tables.d.ts +42 -0
  18. package/dist/schema-tables.d.ts.map +1 -0
  19. package/dist/schema-tables.js +75 -0
  20. package/dist/schema-tables.js.map +1 -0
  21. package/dist/spatial-tree.d.ts +40 -0
  22. package/dist/spatial-tree.d.ts.map +1 -0
  23. package/dist/spatial-tree.js +70 -0
  24. package/dist/spatial-tree.js.map +1 -0
  25. package/dist/tools/bsdd.d.ts.map +1 -1
  26. package/dist/tools/bsdd.js +5 -16
  27. package/dist/tools/bsdd.js.map +1 -1
  28. package/dist/tools/clash.d.ts.map +1 -1
  29. package/dist/tools/clash.js +18 -13
  30. package/dist/tools/clash.js.map +1 -1
  31. package/dist/tools/diff-fingerprints.d.ts +110 -0
  32. package/dist/tools/diff-fingerprints.d.ts.map +1 -0
  33. package/dist/tools/diff-fingerprints.js +410 -0
  34. package/dist/tools/diff-fingerprints.js.map +1 -0
  35. package/dist/tools/diff.d.ts.map +1 -1
  36. package/dist/tools/diff.js +199 -26
  37. package/dist/tools/diff.js.map +1 -1
  38. package/dist/tools/discovery.d.ts.map +1 -1
  39. package/dist/tools/discovery.js +124 -36
  40. package/dist/tools/discovery.js.map +1 -1
  41. package/dist/tools/export.d.ts.map +1 -1
  42. package/dist/tools/export.js +31 -6
  43. package/dist/tools/export.js.map +1 -1
  44. package/dist/tools/mutate.d.ts.map +1 -1
  45. package/dist/tools/mutate.js +6 -9
  46. package/dist/tools/mutate.js.map +1 -1
  47. package/dist/tools/query.d.ts.map +1 -1
  48. package/dist/tools/query.js +129 -69
  49. package/dist/tools/query.js.map +1 -1
  50. package/dist/tools/util.d.ts +36 -7
  51. package/dist/tools/util.d.ts.map +1 -1
  52. package/dist/tools/util.js +90 -0
  53. package/dist/tools/util.js.map +1 -1
  54. package/dist/tools/validation.d.ts.map +1 -1
  55. package/dist/tools/validation.js +82 -26
  56. package/dist/tools/validation.js.map +1 -1
  57. package/package.json +14 -13
@@ -0,0 +1,70 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { pendingOverlay } from './overlay.js';
5
+ /**
6
+ * The `IfcProject` this tree hangs from, or null.
7
+ *
8
+ * A session can delete the file's project, and can create one — so the answer is
9
+ * "the first live persisted `IfcProject`, else the first queued one". The
10
+ * resource used to consider only the persisted list and return null where the
11
+ * tool succeeded, which is two answers to one question.
12
+ */
13
+ export function spatialRootId(model) {
14
+ const overlay = pendingOverlay(model);
15
+ for (const id of model.store.entityIndex.byType.get('IFCPROJECT') ?? []) {
16
+ if (!overlay?.deleted.has(id))
17
+ return id;
18
+ }
19
+ for (const created of overlay?.createdAll ?? []) {
20
+ if (created.ifcType.toUpperCase() === 'IFCPROJECT')
21
+ return created.expressId;
22
+ }
23
+ return null;
24
+ }
25
+ /** The whole tree from {@link spatialRootId}, or null when there is no project. */
26
+ export function buildSpatialTree(model, options = {}) {
27
+ const root = spatialRootId(model);
28
+ if (root === null)
29
+ return null;
30
+ return buildNode(model, root, options.includeElements === true, new Set());
31
+ }
32
+ /**
33
+ * One node and its descendants.
34
+ *
35
+ * **Children come from aggregation only.** `IfcRelContainedInSpatialStructure`
36
+ * names the *elements* a spatial node holds — walls, doors — and those are not
37
+ * spatial nodes; recursing into them put every wall in the file into the tree
38
+ * twice, once as a child and once in `elements`. The spatial chain
39
+ * (project → site → building → storey → space) is aggregation, which is what
40
+ * this follows.
41
+ *
42
+ * **`visited` is threaded, not re-created.** A file whose aggregation contains a
43
+ * cycle — or merely a diamond, where one entity is aggregated under two parents
44
+ * — otherwise recurses forever. An entity already placed is not placed again, so
45
+ * it appears under the first parent reached and the walk is finite. Acyclic
46
+ * input is unaffected: nothing is ever reached twice.
47
+ */
48
+ function buildNode(model, expressId, includeElements, visited) {
49
+ visited.add(expressId);
50
+ const ref = { modelId: model.id, expressId };
51
+ const data = model.bim.entity(ref);
52
+ const children = [];
53
+ for (const child of model.bim.decomposes(ref)) {
54
+ if (visited.has(child.ref.expressId))
55
+ continue;
56
+ children.push(buildNode(model, child.ref.expressId, includeElements, visited));
57
+ }
58
+ const node = {
59
+ expressId,
60
+ globalId: data?.globalId ?? '',
61
+ type: data?.type ?? 'Unknown',
62
+ name: data?.name ?? '',
63
+ children,
64
+ };
65
+ if (includeElements) {
66
+ node.elements = model.bim.contains(ref).map((e) => e.ref.expressId);
67
+ }
68
+ return node;
69
+ }
70
+ //# sourceMappingURL=spatial-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-tree.js","sourceRoot":"","sources":["../src/spatial-tree.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmB/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAa9C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY;YAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAC9B,KAAkB,EAClB,UAAyC,EAAE;IAE3C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,SAAS,CAChB,KAAkB,EAClB,SAAiB,EACjB,eAAwB,EACxB,OAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAC/C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,IAAI,GAAgB;QACxB,SAAS;QACT,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC9B,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS;QAC7B,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,QAAQ;KACT,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bsdd.d.ts","sourceRoot":"","sources":["../../src/tools/bsdd.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAsQvC,eAAO,MAAM,SAAS,EAAE,IAAI,EAAyD,CAAC"}
1
+ {"version":3,"file":"bsdd.d.ts","sourceRoot":"","sources":["../../src/tools/bsdd.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAiQvC,eAAO,MAAM,SAAS,EAAE,IAAI,EAAyD,CAAC"}
@@ -1,13 +1,7 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- /**
5
- * bSDD tools (spec §7.7) — wrap `bim.bsdd.*` so an agent can resolve
6
- * canonical buildingSMART class & property metadata from a chat without
7
- * making raw HTTP calls.
8
- */
9
- import { EntityNode } from '@ifc-lite/query';
10
- import { okResult, resolveModel } from './util.js';
4
+ import { findByGlobalId, okResult, resolveModel } from './util.js';
11
5
  import { ToolErrorCode, ToolExecutionError } from '../errors.js';
12
6
  import { BsddHttpError } from '@ifc-lite/sdk';
13
7
  /**
@@ -233,16 +227,11 @@ const bsddMatch = {
233
227
  // fraction tagged with GlobalId, so this stays cheap. The previous
234
228
  // implementation iterated entityIndex.byType and assigned the first
235
229
  // entity it found, completely ignoring the requested GlobalId.
230
+ // One resolution rule for the whole server (#2014): queued entities in,
231
+ // tombstoned ones out. Resolving differently here would let `bsdd_match`
232
+ // disagree with `get_entity` about which entity a GlobalId names.
236
233
  const target = input.global_id;
237
- outer: for (const [, list] of m.store.entityIndex.byType) {
238
- for (const id of list) {
239
- const node = new EntityNode(m.store, id);
240
- if (node.globalId === target) {
241
- expressId = id;
242
- break outer;
243
- }
244
- }
245
- }
234
+ expressId = findByGlobalId(m, target);
246
235
  if (expressId == null) {
247
236
  throw new ToolExecutionError({
248
237
  code: ToolErrorCode.ENTITY_NOT_FOUND,
@@ -1 +1 @@
1
- {"version":3,"file":"bsdd.js","sourceRoot":"","sources":["../../src/tools/bsdd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bsdd.js","sourceRoot":"","sources":["../../src/tools/bsdd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/tools/clash.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAwNvC,eAAO,MAAM,UAAU,EAAE,IAAI,EAA8B,CAAC"}
1
+ {"version":3,"file":"clash.d.ts","sourceRoot":"","sources":["../../src/tools/clash.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA4NvC,eAAO,MAAM,UAAU,EAAE,IAAI,EAA8B,CAAC"}
@@ -44,21 +44,26 @@ async function meshModel(m, ctx) {
44
44
  const bytes = await resolveIfcBytes(m);
45
45
  ctx.progress.report(0.1, 'Tessellating model geometry', 1);
46
46
  const gp = new GeometryProcessor();
47
- await gp.init();
48
- if (ctx.signal.aborted) {
49
- throw new ToolExecutionError({ code: ToolErrorCode.INTERNAL_ERROR, message: 'Clash run cancelled before meshing.' });
47
+ try {
48
+ await gp.init();
49
+ if (ctx.signal.aborted) {
50
+ throw new ToolExecutionError({ code: ToolErrorCode.INTERNAL_ERROR, message: 'Clash run cancelled before meshing.' });
51
+ }
52
+ const result = await gp.process(bytes);
53
+ const meshes = result.meshes;
54
+ if (meshes.length === 0) {
55
+ throw new ToolExecutionError({
56
+ code: ToolErrorCode.UNSUPPORTED_OPERATION,
57
+ message: 'No mesh geometry could be produced for this model; clash detection needs tessellated solids.',
58
+ hint: 'Confirm the model carries explicit geometry (not quantity-only data).',
59
+ });
60
+ }
61
+ meshCache.set(m, meshes);
62
+ return meshes;
50
63
  }
51
- const result = await gp.process(bytes);
52
- const meshes = result.meshes;
53
- if (meshes.length === 0) {
54
- throw new ToolExecutionError({
55
- code: ToolErrorCode.UNSUPPORTED_OPERATION,
56
- message: 'No mesh geometry could be produced for this model; clash detection needs tessellated solids.',
57
- hint: 'Confirm the model carries explicit geometry (not quantity-only data).',
58
- });
64
+ finally {
65
+ gp.dispose();
59
66
  }
60
- meshCache.set(m, meshes);
61
- return meshes;
62
67
  }
63
68
  /** Raw IFC bytes for meshing: prefer the in-memory source, fall back to disk. */
64
69
  async function resolveIfcBytes(m) {
@@ -1 +1 @@
1
- {"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/tools/clash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clash.js","sourceRoot":"","sources":["../../src/tools/clash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The MCP server's adapter onto the real `@ifc-lite/diff` engine (issue #1891).
3
+ *
4
+ * `model_diff` on its own answers "what changed at the type and identity
5
+ * level" — counts per type, GlobalIds added and removed. That answer is wrong
6
+ * in the most damaging way the moment the two models came from a from-scratch
7
+ * re-export: every GlobalId is new, so the whole model reads as
8
+ * deleted-and-added. `by_content: true` routes the same two loaded models
9
+ * through the engine's content-keyed matching pass instead.
10
+ *
11
+ * **Data scope only, on purpose.** Node has no geometry pipeline here: no
12
+ * meshes, so no world geometry hash and no bounding box. Rather than pretend
13
+ * otherwise the handler passes `scope: 'data'`, which is the honest description
14
+ * of what it can see — the engine then classifies every unambiguous 1:1 content
15
+ * match as `renamed` and reports every genuinely ambiguous group as a group,
16
+ * exactly as it does for a viewer session whose geometry hashing was
17
+ * unavailable.
18
+ *
19
+ * **Scope of the comparison: every `IfcObjectDefinition` in the model.** IFC's
20
+ * three `IfcRoot` branches are not equally comparable. An `IfcObjectDefinition`
21
+ * (every `IfcObject` — product, task, actor, control, resource, group — plus
22
+ * `IfcTypeObject` and `IfcContext`) is an independently identifiable thing. The
23
+ * other two branches are dependent and stay out:
24
+ *
25
+ * - `IfcRelationship`: its identity is its endpoints. Re-GUIDing an
26
+ * `IfcRelAggregates` while both ends are untouched is not a change anyone
27
+ * wants reported.
28
+ * - `IfcPropertyDefinition`: a property set's content is already folded into
29
+ * its owner's `dataHash`, so comparing it again would double-report every
30
+ * edited property — once on the element, once on the pset.
31
+ *
32
+ * Membership is decided from the inheritance chain of every bundled schema
33
+ * (IFC2X3 + IFC4 + IFC4X3), not from whether the columnar parser happened to
34
+ * put the entity in its `EntityTable`, and not from the IFC4 codegen pin alone.
35
+ * That distinction is the whole fix for a class of silent drop-outs: the table
36
+ * only holds the categories the viewer renders, so `IfcTask`, `IfcActor`,
37
+ * `IfcWorkPlan` and every other non-product `IfcObject` reported an empty
38
+ * GlobalId and vanished from the comparison entirely, even though their STEP
39
+ * records carry one. Those are read straight from the source record instead.
40
+ * (`by_entity` on the same tool still asks the store and so still misses them;
41
+ * that is pre-existing behaviour of a different flag, untouched here.)
42
+ *
43
+ * The same distinction closes the drop-out's mirror image. The parser fills the
44
+ * table's GlobalId column positionally, and for a resource entity slot 0 is not
45
+ * a GlobalId: an `IfcMaterial`, `IfcSurfaceStyle`, `IfcClassification` or
46
+ * `IfcProjectedCRS` was being compared under its *Name*, which put colliding
47
+ * keys into the comparison — a material and a surface style of the same name
48
+ * arriving as one entity. None of them is an `IfcRoot`, so the chain check
49
+ * leaves them out and the key set is unique again.
50
+ *
51
+ * ## Why this is a second copy, and what stops it drifting
52
+ *
53
+ * `packages/cli/src/commands/diff-engine.ts` and its `diff-scope.ts` are the
54
+ * same adapter, and the two must stay behaviourally identical — a fingerprint
55
+ * means nothing unless both producers compute it the same way. It is duplicated
56
+ * rather than shared because there is no honest home for it yet:
57
+ *
58
+ * - `@ifc-lite/cli` already depends on `@ifc-lite/mcp`, so this package cannot
59
+ * import from there without a cycle.
60
+ * - `@ifc-lite/diff` is deliberately store-agnostic and dependency-free; giving
61
+ * it a runtime dependency on `@ifc-lite/parser` to host an adapter would undo
62
+ * the property that lets the viewer, the CLI and this server each supply
63
+ * their own.
64
+ * - `@ifc-lite/parser` must not learn about diffing. The *scope* walk is close
65
+ * to parser-domain — it exists to compensate for the columnar parser's own
66
+ * `EntityTable` gaps — but which `IfcRoot` branches a comparison may speak
67
+ * for is diff policy, and exporting that from the most-depended-on package
68
+ * under a neutral name would only rename the problem.
69
+ *
70
+ * That leaves a fourth package both could depend on, which is a published
71
+ * artefact and a release decision rather than a review fix.
72
+ *
73
+ * Until then the agreement is **asserted, not assumed**. The copies previously
74
+ * relied on parallel suites (`diff.test.ts` here, `diff-content.test.ts` in the
75
+ * CLI) checking the same behaviour separately, which cannot detect a drift:
76
+ * fixing one copy and not the other passes both. It took hours to find out —
77
+ * #2001 moved the CLI's membership check to the cross-schema inheritance lookup
78
+ * and this copy stayed on the IFC4 codegen pin, silently dropping every IFC2X3
79
+ * and IFC4X3 object class outside that pin. `diff-fingerprints.test.ts` now runs
80
+ * *both* copies over the CLI's own fixtures and requires the same entities under
81
+ * the same type names, so the next divergence fails a build instead of shipping.
82
+ *
83
+ * The one thing this copy has and the CLI's does not is the optional
84
+ * `overlay` argument. It is additive, not a divergence: a `model_id` on this
85
+ * server names a session that may carry queued mutations, and the CLI diffs two
86
+ * files that cannot. Called without it, the two copies compute byte-identical
87
+ * fingerprints, which is what the paired tests check.
88
+ */
89
+ import { type EntityFingerprint } from '@ifc-lite/diff';
90
+ import { type IfcDataStore } from '@ifc-lite/parser';
91
+ import type { PendingOverlay } from '../overlay.js';
92
+ /** Adapter handle threaded through the diff: the entity's express id. */
93
+ export type DiffRef = number;
94
+ /**
95
+ * Build one {@link EntityFingerprint} per `IfcObjectDefinition` in a store.
96
+ *
97
+ * `components` is populated as well as `dataHash`: the content pass's only
98
+ * defence against a `dataHash` collision retiring an unrelated add/delete pair
99
+ * is agreement on `ifcType` and on every component sub-hash, and the second
100
+ * check is inert unless both sides supply them (see the "Hash collisions"
101
+ * section of `docs/guide/model-diff.md`).
102
+ *
103
+ * Pass `overlay` to fingerprint the model *as the session has it* rather than
104
+ * as the file was parsed — tombstoned entities drop out, created ones join, and
105
+ * edited names, descriptions and property values are hashed at their new
106
+ * values. Omitting it (the CLI twin has no session to overlay) is the original
107
+ * store-only behaviour exactly.
108
+ */
109
+ export declare function buildModelFingerprints(store: IfcDataStore, overlay?: PendingOverlay | null): EntityFingerprint<DiffRef>[];
110
+ //# sourceMappingURL=diff-fingerprints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-fingerprints.d.ts","sourceRoot":"","sources":["../../src/tools/diff-fingerprints.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,yEAAyE;AACzE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAwE7B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,GAC9B,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAyD9B"}