@sectile/virtual 0.7.0 → 0.9.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 (49) hide show
  1. package/README.md +3 -3
  2. package/dist/error.d.ts +1 -2
  3. package/dist/extent-index.d.ts +7 -1
  4. package/dist/extent-index.js +93 -83
  5. package/dist/extent-index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/internal/blocked-vector.d.ts +20 -0
  8. package/dist/internal/blocked-vector.js +171 -0
  9. package/dist/internal/blocked-vector.js.map +1 -0
  10. package/dist/internal/foundation.d.ts +0 -2
  11. package/dist/internal/foundation.js +3 -13
  12. package/dist/internal/foundation.js.map +1 -1
  13. package/dist/internal/repair-diagnostics.d.ts +11 -0
  14. package/dist/internal/repair-diagnostics.js +8 -0
  15. package/dist/internal/repair-diagnostics.js.map +1 -0
  16. package/dist/internal/track.d.ts +0 -1
  17. package/dist/layout.d.ts +18 -20
  18. package/dist/layout.js +7 -21
  19. package/dist/layout.js.map +1 -1
  20. package/dist/linear-layout.d.ts +0 -1
  21. package/dist/linear-layout.js +27 -2
  22. package/dist/linear-layout.js.map +1 -1
  23. package/dist/masonry-layout.d.ts +0 -1
  24. package/dist/masonry-layout.js +73 -17
  25. package/dist/masonry-layout.js.map +1 -1
  26. package/dist/partitioned-track-grid-layout.d.ts +87 -0
  27. package/dist/partitioned-track-grid-layout.js +585 -0
  28. package/dist/partitioned-track-grid-layout.js.map +1 -0
  29. package/dist/spatial-layout.d.ts +7 -4
  30. package/dist/spatial-layout.js +217 -56
  31. package/dist/spatial-layout.js.map +1 -1
  32. package/dist/track-grid-layout.d.ts +17 -3
  33. package/dist/track-grid-layout.js +211 -15
  34. package/dist/track-grid-layout.js.map +1 -1
  35. package/package.json +8 -3
  36. package/dist/error.d.ts.map +0 -1
  37. package/dist/extent-index.d.ts.map +0 -1
  38. package/dist/index.d.ts.map +0 -1
  39. package/dist/internal/foundation.d.ts.map +0 -1
  40. package/dist/internal/machine.d.ts +0 -4
  41. package/dist/internal/machine.d.ts.map +0 -1
  42. package/dist/internal/machine.js +0 -8
  43. package/dist/internal/machine.js.map +0 -1
  44. package/dist/internal/track.d.ts.map +0 -1
  45. package/dist/layout.d.ts.map +0 -1
  46. package/dist/linear-layout.d.ts.map +0 -1
  47. package/dist/masonry-layout.d.ts.map +0 -1
  48. package/dist/spatial-layout.d.ts.map +0 -1
  49. package/dist/track-grid-layout.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitioned-track-grid-layout.js","sourceRoot":"","sources":["../src/partitioned-track-grid-layout.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { StableID } from '@sectile/core';
2
2
  import type { VirtualResult } from './error.js';
3
- import { type Sequence } from '@sectile/core/sequence';
4
- import { type VirtualAnchor, type VirtualLayoutMutation, type VirtualLayoutPlan, type VirtualLayoutStrategy, type VirtualMeasurementBatch, type VirtualPlacement, type VirtualPoint, type VirtualQueryInput, type VirtualRect, type VirtualScrollAlignment } from './layout.js';
3
+ import { type Sequence, type SequencePatch } from '@sectile/core/sequence';
4
+ import { type VirtualAnchor, type VirtualLayoutMutation, type VirtualLayoutPlan, type VirtualLayoutStrategy, type VirtualMeasurementBatch, type VirtualPlacement, type VirtualPoint, type VirtualQueryInput, type VirtualIndexedView, type VirtualRect, type VirtualScrollAlignment } from './layout.js';
5
5
  export interface SpatialItem<ID extends StableID = StableID> {
6
6
  readonly id: ID;
7
7
  readonly rect: VirtualRect;
@@ -11,7 +11,7 @@ declare const spatialLayoutStateBrand: unique symbol;
11
11
  export interface SpatialLayoutState<ID extends StableID = StableID> {
12
12
  readonly [spatialLayoutStateBrand]: true;
13
13
  readonly domain: Sequence<ID>;
14
- readonly items: readonly SpatialItem<ID>[];
14
+ readonly items: VirtualIndexedView<SpatialItem<ID>>;
15
15
  readonly maxItems: number;
16
16
  readonly generation: number;
17
17
  }
@@ -36,6 +36,10 @@ export type SpatialMutation<ID extends StableID = StableID> = {
36
36
  readonly type: 'update';
37
37
  readonly upsert?: readonly SpatialItem<ID>[];
38
38
  readonly remove?: readonly ID[];
39
+ } | {
40
+ readonly type: 'patch';
41
+ readonly patch: SequencePatch<ID>;
42
+ readonly inserted: readonly SpatialItem<ID>[];
39
43
  };
40
44
  export interface SpatialPlacement<ID extends StableID = StableID> extends VirtualPlacement<ID> {
41
45
  readonly zIndex: number;
@@ -59,4 +63,3 @@ export declare function spatialScrollTarget<ID extends StableID>(state: SpatialL
59
63
  export declare function trySpatialScrollTarget<ID extends StableID>(state: SpatialLayoutState<ID>, id: ID, viewport: VirtualRect, alignment?: VirtualScrollAlignment): VirtualResult<VirtualPoint>;
60
64
  export declare function spatialRectAt<ID extends StableID>(state: SpatialLayoutState<ID>, id: ID): VirtualRect | null;
61
65
  export {};
62
- //# sourceMappingURL=spatial-layout.d.ts.map
@@ -1,9 +1,12 @@
1
- import { tryCreateSequence } from '@sectile/core/sequence';
1
+ import { tryApplySequencePatch, tryCreateSequence, } from '@sectile/core/sequence';
2
2
  import { unwrap } from '@sectile/core/result';
3
+ import { boundsOfRects, createRect, isFiniteRect } from '@sectile/core/geometry';
4
+ import { blockedRepairBound, createBlockedVector, createOwnedBlockedVector, useBlockedRepair } from './internal/blocked-vector.js';
3
5
  import { fail, ok } from './internal/foundation.js';
6
+ import { recordRepairDiagnostics } from './internal/repair-diagnostics.js';
4
7
  import { alignedScrollOffset, anchorForPlan, normalizeQuery, pointDelta, rectanglesIntersect, ZERO_POINT, } from './layout.js';
5
8
  const spatialLayoutStateBrand = Symbol('SectileSpatialLayoutState');
6
- const LEAF_SIZE = 16;
9
+ const LEAF_SIZE = 64;
7
10
  const internals = new WeakMap();
8
11
  export const spatialLayoutStrategy = Object.freeze({
9
12
  kind: 'spatial',
@@ -25,14 +28,16 @@ export function tryCreateSpatialLayout(items, input = {}) {
25
28
  return ok(createState(validated.value.domain, validated.value.items, maxItems, 0));
26
29
  }
27
30
  export function snapshotSpatialLayout(state) {
31
+ const items = [];
32
+ state.items.forEach((item) => items.push(Object.freeze({
33
+ id: item.id,
34
+ rect: Object.freeze({ ...item.rect }),
35
+ ...(item.zIndex === undefined ? {} : { zIndex: item.zIndex }),
36
+ })));
28
37
  return Object.freeze({
29
38
  schemaVersion: 1,
30
39
  kind: 'spatial',
31
- items: Object.freeze(state.items.map((item) => Object.freeze({
32
- id: item.id,
33
- rect: Object.freeze({ ...item.rect }),
34
- ...(item.zIndex === undefined ? {} : { zIndex: item.zIndex }),
35
- }))),
40
+ items: Object.freeze(items),
36
41
  maxItems: state.maxItems,
37
42
  generation: state.generation,
38
43
  });
@@ -48,7 +53,7 @@ export function tryRestoreSpatialLayout(snapshot) {
48
53
  });
49
54
  if (!restored.ok)
50
55
  return restored;
51
- return ok(createState(restored.value.domain, restored.value.items, restored.value.maxItems, snapshot.generation));
56
+ return ok(createState(restored.value.domain, restored.value.items.toArray(), restored.value.maxItems, snapshot.generation));
52
57
  }
53
58
  export function querySpatialLayout(state, input) {
54
59
  return unwrap(tryQuerySpatialLayout(state, input));
@@ -92,24 +97,81 @@ export function tryApplySpatialMeasurements(state, batch) {
92
97
  return data;
93
98
  const replacements = new Map();
94
99
  for (const measurement of batch.measurements) {
95
- if (replacements.has(measurement.id) || !data.value.byID.has(measurement.id) || !validRect(measurement.rect))
100
+ const index = data.value.byID.get(measurement.id);
101
+ if (index === undefined || replacements.has(index) || !validRect(measurement.rect))
96
102
  return fail('transition-rejection', 'virtual-layout-measurement-invalid', 'Spatial measurements require unique existing IDs and valid rectangles.', { measurement });
97
- replacements.set(measurement.id, freezeRect(measurement.rect));
103
+ const current = data.value.items.at(index);
104
+ const rect = createRect(measurement.rect);
105
+ if (!sameRect(current.rect, rect))
106
+ replacements.set(index, Object.freeze({ ...current, rect }));
98
107
  }
108
+ if (replacements.size === 0)
109
+ return ok(Object.freeze({ state, scrollDelta: ZERO_POINT }));
99
110
  const before = anchorRect(state, batch.anchor);
100
- const items = state.items.map((item) => replacements.has(item.id) ? Object.freeze({ ...item, rect: replacements.get(item.id) }) : item);
101
111
  const generation = nextGeneration(state.generation);
102
112
  if (!generation.ok)
103
113
  return generation;
104
- const next = createState(state.domain, items, state.maxItems, generation.value);
114
+ if (state.items.size < 1_024 || replacements.size >= state.items.size / 2) {
115
+ const items = new Array(data.value.items.size);
116
+ data.value.items.forEach((item, index) => { items[index] = replacements.get(index) ?? item; });
117
+ const next = createOwnedState(state.domain, items, state.maxItems, generation.value);
118
+ const blockCeiling = Math.ceil(state.items.size / LEAF_SIZE);
119
+ const touchedPartitions = Math.min(replacements.size, blockCeiling) * 2;
120
+ recordRepairDiagnostics(next, {
121
+ mode: 'rebuild',
122
+ changed: replacements.size,
123
+ touchedBlocks: touchedPartitions,
124
+ copiedNodes: 0,
125
+ copiedEntries: 0,
126
+ rebuiltItems: state.items.size,
127
+ repairBound: blockedRepairBound(replacements.size, state.items.size, touchedPartitions),
128
+ });
129
+ return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, batch.anchor)) }));
130
+ }
131
+ const changes = [...replacements].sort(([left], [right]) => left - right);
132
+ const touchedLeaves = [...new Set(changes.map(([index]) => data.value.leafIndexByItemIndex[index]))].sort((left, right) => left - right);
133
+ const touchedVectorBlocks = new Set(changes.map(([index]) => Math.floor(index / LEAF_SIZE))).size;
134
+ const touchedPartitions = touchedVectorBlocks + touchedLeaves.length;
135
+ const repairBound = blockedRepairBound(changes.length, state.items.size, touchedPartitions);
136
+ let next;
137
+ if (useBlockedRepair(changes.length, state.items.size, touchedPartitions)) {
138
+ const vector = data.value.items.updateDetailed(changes);
139
+ const work = { copiedNodes: vector.copiedNodes };
140
+ next = createMeasuredState(state, data.value, vector.vector, touchedLeaves, generation.value, work);
141
+ recordRepairDiagnostics(next, {
142
+ mode: 'incremental',
143
+ changed: changes.length,
144
+ touchedBlocks: touchedPartitions,
145
+ copiedNodes: work.copiedNodes,
146
+ copiedEntries: vector.copiedEntries,
147
+ rebuiltItems: 0,
148
+ repairBound,
149
+ });
150
+ }
151
+ else {
152
+ const items = new Array(data.value.items.size);
153
+ data.value.items.forEach((item, index) => { items[index] = replacements.get(index) ?? item; });
154
+ next = createOwnedState(state.domain, items, state.maxItems, generation.value);
155
+ recordRepairDiagnostics(next, {
156
+ mode: 'rebuild',
157
+ changed: changes.length,
158
+ touchedBlocks: touchedPartitions,
159
+ copiedNodes: 0,
160
+ copiedEntries: 0,
161
+ rebuiltItems: state.items.size,
162
+ repairBound,
163
+ });
164
+ }
105
165
  return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, batch.anchor)) }));
106
166
  }
107
167
  export function applySpatialMutation(state, mutation, anchor = null) {
108
168
  return unwrap(tryApplySpatialMutation(state, mutation, anchor));
109
169
  }
110
170
  export function tryApplySpatialMutation(state, mutation, anchor = null) {
111
- if (mutation.type !== 'replace' && mutation.type !== 'update')
171
+ if (mutation.type !== 'replace' && mutation.type !== 'update' && mutation.type !== 'patch')
112
172
  return fail('transition-rejection', 'virtual-layout-mutation-invalid', 'Spatial mutation type is unsupported.', { mutation });
173
+ if (mutation.type === 'patch')
174
+ return tryApplySpatialPatch(state, mutation, anchor);
113
175
  let items;
114
176
  if (mutation.type === 'replace')
115
177
  items = mutation.items;
@@ -129,7 +191,7 @@ export function tryApplySpatialMutation(state, mutation, anchor = null) {
129
191
  updated.set(item.id, item);
130
192
  }
131
193
  const next = [];
132
- for (const item of state.items) {
194
+ for (const item of state.items.iterate()) {
133
195
  if (removed.has(item.id))
134
196
  continue;
135
197
  next.push(updated.get(item.id) ?? item);
@@ -152,6 +214,46 @@ export function tryApplySpatialMutation(state, mutation, anchor = null) {
152
214
  const next = createState(validated.value.domain, validated.value.items, state.maxItems, generation.value);
153
215
  return ok(Object.freeze({ state: next, scrollDelta: anchorDelta(before, anchorRect(next, anchor)) }));
154
216
  }
217
+ function tryApplySpatialPatch(state, mutation, anchor) {
218
+ if (mutation.patch.type !== 'splice') {
219
+ return fail('transition-rejection', 'virtual-layout-mutation-invalid', 'Spatial item patches must use splice semantics.');
220
+ }
221
+ const patch = mutation.patch;
222
+ if (patch.inserted.length !== mutation.inserted.length
223
+ || mutation.inserted.some((item, index) => item.id !== patch.inserted[index])) {
224
+ return fail('transition-rejection', 'virtual-layout-mutation-invalid', 'Spatial inserted items must match the patched identities.');
225
+ }
226
+ const frozenInserted = [];
227
+ for (const item of mutation.inserted) {
228
+ if (!validRect(item.rect) || (item.zIndex !== undefined && !Number.isSafeInteger(item.zIndex))) {
229
+ return fail('transition-rejection', 'virtual-layout-geometry-invalid', 'Spatial items require finite non-negative rectangles and safe-integer z-indices.', { item });
230
+ }
231
+ frozenInserted.push(Object.freeze({
232
+ id: item.id,
233
+ rect: createRect(item.rect),
234
+ ...(item.zIndex === undefined || item.zIndex === 0 ? {} : { zIndex: item.zIndex }),
235
+ }));
236
+ }
237
+ const domain = tryApplySequencePatch(state.domain, patch, {
238
+ maxItems: state.maxItems,
239
+ });
240
+ if (!domain.ok)
241
+ return domain;
242
+ const data = getInternals(state);
243
+ if (!data.ok)
244
+ return data;
245
+ const items = Array.from(data.value.items.iterate());
246
+ items.splice(patch.index, patch.deleteCount, ...frozenInserted);
247
+ const before = anchorRect(state, anchor);
248
+ const generation = nextGeneration(state.generation);
249
+ if (!generation.ok)
250
+ return generation;
251
+ const next = createState(domain.value, items, state.maxItems, generation.value);
252
+ return ok(Object.freeze({
253
+ state: next,
254
+ scrollDelta: anchorDelta(before, anchorRect(next, anchor)),
255
+ }));
256
+ }
155
257
  export function spatialScrollTarget(state, id, viewport, alignment = 'nearest') {
156
258
  return unwrap(trySpatialScrollTarget(state, id, viewport, alignment));
157
259
  }
@@ -159,29 +261,55 @@ export function trySpatialScrollTarget(state, id, viewport, alignment = 'nearest
159
261
  const data = getInternals(state);
160
262
  if (!data.ok)
161
263
  return data;
162
- const item = data.value.byID.get(id);
264
+ const index = data.value.byID.get(id);
265
+ const item = index === undefined ? undefined : data.value.items.at(index);
163
266
  if (item === undefined)
164
267
  return fail('transition-rejection', 'virtual-layout-scroll-target-invalid', 'Scroll target must exist in the spatial domain.', { id });
165
268
  return ok(Object.freeze({
166
- x: alignedScrollOffset(item.value.rect.x, item.value.rect.width, viewport.x, viewport.width, data.value.contentSize.width, alignment),
167
- y: alignedScrollOffset(item.value.rect.y, item.value.rect.height, viewport.y, viewport.height, data.value.contentSize.height, alignment),
269
+ x: alignedScrollOffset(item.rect.x, item.rect.width, viewport.x, viewport.width, data.value.contentSize.width, alignment),
270
+ y: alignedScrollOffset(item.rect.y, item.rect.height, viewport.y, viewport.height, data.value.contentSize.height, alignment),
168
271
  }));
169
272
  }
170
273
  export function spatialRectAt(state, id) {
171
- return internals.get(state)?.byID.get(id)?.value.rect ?? null;
274
+ const data = internals.get(state);
275
+ const index = data?.byID.get(id);
276
+ return index === undefined ? null : data?.items.at(index)?.rect ?? null;
172
277
  }
173
278
  function createState(domain, items, maxItems, generation) {
174
- const mutable = { domain, items: Object.freeze([...items]), maxItems, generation };
279
+ const vector = createBlockedVector(items);
280
+ return createStateFromVector(domain, vector, maxItems, generation);
281
+ }
282
+ function createOwnedState(domain, items, maxItems, generation) {
283
+ return createStateFromVector(domain, createOwnedBlockedVector(items), maxItems, generation);
284
+ }
285
+ function createStateFromVector(domain, vector, maxItems, generation) {
286
+ const mutable = { domain, items: vector.view, maxItems, generation };
175
287
  Object.defineProperty(mutable, spatialLayoutStateBrand, { value: true });
176
288
  const state = Object.freeze(mutable);
177
- const indexed = state.items.map((value, index) => Object.freeze({ value, index, zIndex: value.zIndex ?? 0 }));
178
- let width = 0;
179
- let height = 0;
180
- for (const item of state.items) {
181
- width = Math.max(width, item.rect.x + item.rect.width);
182
- height = Math.max(height, item.rect.y + item.rect.height);
183
- }
184
- internals.set(state, { root: buildPackedTree(indexed), byID: new Map(indexed.map((item) => [item.value.id, item])), contentSize: Object.freeze({ width, height }) });
289
+ const indexed = [];
290
+ vector.forEach((value, index) => { indexed.push(Object.freeze({ value, index, zIndex: value.zIndex ?? 0 })); });
291
+ const packed = buildPackedTree(indexed);
292
+ internals.set(state, {
293
+ root: packed.root,
294
+ byID: new Map(indexed.map((item) => [item.value.id, item.index])),
295
+ items: vector,
296
+ leafIndexByItemIndex: packed.leafIndexByItemIndex,
297
+ contentSize: contentSize(packed.root),
298
+ });
299
+ return state;
300
+ }
301
+ function createMeasuredState(previous, data, items, touchedLeaves, generation, work) {
302
+ const root = data.root === null ? null : repairSpatialTree(data.root, 0, touchedLeaves, 0, touchedLeaves.length, items, work);
303
+ const mutable = { domain: previous.domain, items: items.view, maxItems: previous.maxItems, generation };
304
+ Object.defineProperty(mutable, spatialLayoutStateBrand, { value: true });
305
+ const state = Object.freeze(mutable);
306
+ internals.set(state, {
307
+ root,
308
+ byID: data.byID,
309
+ items,
310
+ leafIndexByItemIndex: data.leafIndexByItemIndex,
311
+ contentSize: contentSize(root),
312
+ });
185
313
  return state;
186
314
  }
187
315
  function validateItems(items, maxItems) {
@@ -194,26 +322,73 @@ function validateItems(items, maxItems) {
194
322
  for (const item of items) {
195
323
  if (!validRect(item.rect) || (item.zIndex !== undefined && (!Number.isSafeInteger(item.zIndex))))
196
324
  return fail('construction', 'virtual-layout-geometry-invalid', 'Spatial items require finite non-negative rectangles and safe-integer z-indices.', { item });
197
- frozen.push(Object.freeze({ id: item.id, rect: freezeRect(item.rect), ...(item.zIndex === undefined || item.zIndex === 0 ? {} : { zIndex: item.zIndex }) }));
325
+ frozen.push(Object.freeze({ id: item.id, rect: createRect(item.rect), ...(item.zIndex === undefined || item.zIndex === 0 ? {} : { zIndex: item.zIndex }) }));
198
326
  }
199
327
  return ok(Object.freeze({ domain: domain.value, items: Object.freeze(frozen) }));
200
328
  }
201
329
  function buildPackedTree(items) {
202
330
  if (items.length === 0)
203
- return null;
204
- let level = packedGroups(items, (item) => item.value.rect).map((group) => Object.freeze({
205
- bounds: boundsOfRects(group.map((item) => item.value.rect)),
206
- items: Object.freeze(group),
207
- children: null,
208
- }));
331
+ return Object.freeze({ root: null, leafIndexByItemIndex: Object.freeze([]) });
332
+ const leafIndexByItemIndex = [];
333
+ let level = packedGroups(items, (item) => item.value.rect).map((group, leafIndex) => {
334
+ for (const item of group)
335
+ leafIndexByItemIndex[item.index] = leafIndex;
336
+ return Object.freeze({
337
+ bounds: boundsOfRects(group.map((item) => item.value.rect)),
338
+ items: Object.freeze(group),
339
+ children: null,
340
+ leafCount: 1,
341
+ });
342
+ });
209
343
  while (level.length > 1) {
210
- level = packedGroups(level, (node) => node.bounds).map((children) => Object.freeze({
211
- bounds: boundsOfRects(children.map((node) => node.bounds)),
212
- items: null,
213
- children: Object.freeze(children),
214
- }));
344
+ const next = [];
345
+ for (let start = 0; start < level.length; start += 2) {
346
+ const children = level.slice(start, start + 2);
347
+ next.push(Object.freeze({
348
+ bounds: boundsOfRects(children.map((node) => node.bounds)),
349
+ items: null,
350
+ children: Object.freeze(children),
351
+ leafCount: children.reduce((total, child) => total + child.leafCount, 0),
352
+ }));
353
+ }
354
+ level = next;
355
+ }
356
+ return Object.freeze({ root: level[0], leafIndexByItemIndex: Object.freeze(leafIndexByItemIndex) });
357
+ }
358
+ function repairSpatialTree(node, leafStart, touched, from, to, items, work) {
359
+ if (from === to)
360
+ return node;
361
+ if (node.items !== null) {
362
+ work.copiedNodes += 1;
363
+ const repaired = node.items.map((item) => Object.freeze({ ...item, value: items.at(item.index) }));
364
+ return Object.freeze({
365
+ bounds: boundsOfRects(repaired.map((item) => item.value.rect)),
366
+ items: Object.freeze(repaired),
367
+ children: null,
368
+ leafCount: 1,
369
+ });
215
370
  }
216
- return level[0];
371
+ const children = node.children;
372
+ const leftLeaves = children[0].leafCount;
373
+ const boundary = leafStart + leftLeaves;
374
+ let middle = from;
375
+ while (middle < to && touched[middle] < boundary)
376
+ middle += 1;
377
+ const left = repairSpatialTree(children[0], leafStart, touched, from, middle, items, work);
378
+ const right = children.length === 1 ? null : repairSpatialTree(children[1], boundary, touched, middle, to, items, work);
379
+ const repairedChildren = right === null ? Object.freeze([left]) : Object.freeze([left, right]);
380
+ work.copiedNodes += 1;
381
+ return Object.freeze({
382
+ bounds: boundsOfRects(repairedChildren.map((child) => child.bounds)),
383
+ items: null,
384
+ children: repairedChildren,
385
+ leafCount: node.leafCount,
386
+ });
387
+ }
388
+ function contentSize(root) {
389
+ return root === null
390
+ ? Object.freeze({ width: 0, height: 0 })
391
+ : Object.freeze({ width: root.bounds.x + root.bounds.width, height: root.bounds.y + root.bounds.height });
217
392
  }
218
393
  function queryNode(node, bounds, output) {
219
394
  if (node === null || !rectanglesIntersect(node.bounds, bounds))
@@ -242,22 +417,9 @@ function packedGroups(values, rectOf) {
242
417
  }
243
418
  return groups;
244
419
  }
245
- function boundsOfRects(rects) {
246
- let minX = Number.POSITIVE_INFINITY;
247
- let minY = Number.POSITIVE_INFINITY;
248
- let maxX = 0;
249
- let maxY = 0;
250
- for (const rect of rects) {
251
- minX = Math.min(minX, rect.x);
252
- minY = Math.min(minY, rect.y);
253
- maxX = Math.max(maxX, rect.x + rect.width);
254
- maxY = Math.max(maxY, rect.y + rect.height);
255
- }
256
- return Object.freeze({ x: minX, y: minY, width: maxX - minX, height: maxY - minY });
257
- }
258
420
  function center(rect, axis) { return axis === 'x' ? rect.x + rect.width / 2 : rect.y + rect.height / 2; }
259
- function validRect(rect) { return rect !== null && typeof rect === 'object' && finiteNonNegative(rect.x) && finiteNonNegative(rect.y) && finiteNonNegative(rect.width) && finiteNonNegative(rect.height); }
260
- function freezeRect(rect) { return Object.freeze({ x: rect.x, y: rect.y, width: rect.width, height: rect.height }); }
421
+ function sameRect(left, right) { return left.x === right.x && left.y === right.y && left.width === right.width && left.height === right.height; }
422
+ function validRect(rect) { return isFiniteRect(rect) && rect.x >= 0 && rect.y >= 0; }
261
423
  function anchorRect(state, anchor) { return anchor === null || anchor === undefined ? null : spatialRectAt(state, anchor.id); }
262
424
  function getInternals(state) { const value = internals.get(state); return value === undefined ? fail('construction', 'virtual-layout-domain-mismatch', 'Spatial state must be created by createSpatialLayout().') : ok(value); }
263
425
  function validSnapshotHeader(snapshot) {
@@ -274,5 +436,4 @@ function validSnapshotHeader(snapshot) {
274
436
  function snapshotFailure() { return fail('construction', 'virtual-layout-snapshot-invalid', 'Spatial layout snapshot is invalid.'); }
275
437
  function anchorDelta(before, after) { return before === null || after === null ? ZERO_POINT : pointDelta(before, after); }
276
438
  function nextGeneration(generation) { return generation === Number.MAX_SAFE_INTEGER ? fail('resource-rejection', 'virtual-layout-generation-exhausted', 'Layout generation reached the safe-integer ceiling.') : ok(generation + 1); }
277
- function finiteNonNegative(value) { return Number.isFinite(value) && value >= 0; }
278
439
  //# sourceMappingURL=spatial-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-layout.js","sourceRoot":"","sources":["../src/spatial-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spatial-layout.js","sourceRoot":"","sources":["../src/spatial-layout.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAsB,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvJ,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EACL,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,GAIhG,MAAM,aAAa,CAAC;AAQrB,MAAM,uBAAuB,GAAkB,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAsDnF,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAkD,CAAC;AAEhF,MAAM,CAAC,MAAM,qBAAqB,GAA6F,MAAM,CAAC,MAAM,CAAC;IAC3I,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,CAAC,KAAyB,EAAE,KAAwB,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;IACtG,UAAU,EAAE,CAAC,KAAyB,EAAE,KAAkD,EAAE,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC;IACxI,SAAS,EAAE,CAAC,KAAyB,EAAE,KAAqF,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;IAC7L,eAAe,EAAE,CAAC,KAAyB,EAAE,EAAY,EAAE,QAAqB,EAAE,SAAkC,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC;CAChL,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAsB,KAAiC,EAAE,KAAK,GAAuB,EAAE;IACxH,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAsB,KAAiC,EAAE,KAAK,GAAuB,EAAE;IAC3H,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,+CAA+C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrK,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAA6B;IAE7B,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACrD,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAC9D,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAmC;IAEnC,OAAO,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAmC;IAEnC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAAE,OAAO,eAAe,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,KAAK,EAAE;QACtD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,EAAE,CAAC,WAAW,CACnB,QAAQ,CAAC,KAAK,CAAC,MAAM,EACrB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAC9B,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACvB,QAAQ,CAAC,UAAU,CACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAsB,KAA6B,EAAE,KAAwB;IAC7G,OAAO,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAsB,KAA6B,EAAE,KAAwB;IAChH,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACtE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAwB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACjG,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;QACtB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI;QAC1B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC9E,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;QACnC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ;QACnC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY;QAC3C,UAAU;QACV,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;KAC7D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAsB,KAA6B,EAAE,KAA0D;IACrJ,OAAO,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAsB,KAA6B,EAAE,KAA0D;IACxJ,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7N,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IACxD,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,oCAAoC,EAAE,wEAAwE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACzP,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAkB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACxE,uBAAuB,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY,CAAC,IAAI;YAC1B,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC9B,WAAW,EAAE,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC;SACxF,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC1I,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC5F,IAAI,IAA4B,CAAC;IACjC,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpG,uBAAuB,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,CAAC;YACf,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,KAAK,CAAkB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/E,uBAAuB,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC9B,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAsB,KAA6B,EAAE,QAA6B,EAAE,MAAM,GAA6B,IAAI;IAC7J,OAAO,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsB,KAA6B,EAAE,QAA6B,EAAE,MAAM,GAA6B,IAAI;IAChK,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,uCAAuC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1N,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpF,IAAI,KAAiC,CAAC;IACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SACnD,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,qCAAqC,CAAC,CAAC;QAClJ,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,+CAA+C,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1L,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,4DAA4D,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACxM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAsB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAS;YACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM;YAAE,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,cAAc;YAChE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE;YAC7E,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1G,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA6B,EAC7B,QAAkE,EAClE,MAAgC;IAEhC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,iDAAiD,CAAC,CAAC;IAC5H,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM;WAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC7E,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,2DAA2D,CAAC,CAAC;IACtI,CAAC;IACD,MAAM,cAAc,GAAsB,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC/F,OAAO,IAAI,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,kFAAkF,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACvK,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SACnF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;QACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,MAAM,CACV,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,WAAW,EACjB,GAAG,cAAc,CAClB,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAChF,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACtB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC3D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAsB,KAA6B,EAAE,EAAM,EAAE,QAAqB,EAAE,SAAS,GAA2B,SAAS;IAClK,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAsB,KAA6B,EAAE,EAAM,EAAE,QAAqB,EAAE,SAAS,GAA2B,SAAS;IACrK,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,sCAAsC,EAAE,iDAAiD,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/J,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACtB,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;QACzH,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7H,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAsB,KAA6B,EAAE,EAAM;IACtF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAA2B,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAsB,MAAoB,EAAE,KAAiC,EAAE,QAAgB,EAAE,UAAkB;IACrI,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAsB,MAAoB,EAAE,KAAwB,EAAE,QAAgB,EAAE,UAAkB;IACjI,OAAO,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,qBAAqB,CAAsB,MAAoB,EAAE,MAAsC,EAAE,QAAgB,EAAE,UAAkB;IACpJ,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACrE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAA2B,CAAC;IAC/D,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,KAAK,EAAE,MAAM;QACb,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;KACR,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgC,EAChC,IAA0B,EAC1B,KAAqC,EACrC,aAAgC,EAChC,UAAkB,EAClB,IAA6B;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9H,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACxG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAA2B,CAAC;IAC/D,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACnB,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK;QACL,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;KACD,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAsB,KAAiC,EAAE,QAAgB;IAC7F,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;QAAE,OAAO,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5J,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjG,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,EAAE,iCAAiC,EAAE,kFAAkF,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/P,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/J,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,eAAe,CAAsB,KAAwC;IAIpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtG,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAmB,EAAE;QACnG,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACvE,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE;YAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAsB,EAAE,CAAC;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACxB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE;gBAC3D,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;aACvE,CAAC,CAAC,CAAC;QACN,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAqB,EACrB,SAAiB,EACjB,OAA0B,EAC1B,IAAY,EACZ,EAAU,EACV,KAAqC,EACrC,IAA6B;IAE7B,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE;YAC/D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAS,CAAC;IAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACxC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAE,GAAG,QAAQ;QAAE,MAAM,IAAI,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzH,MAAM,gBAAgB,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE;QACrE,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAsB,IAA4B;IACpE,OAAO,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,SAAS,CAAsB,IAA4B,EAAE,MAAmB,EAAE,MAAgC;IACzH,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,OAAO;IACvE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAI,MAAoB,EAAE,MAAiC;IAC9E,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzG,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACzI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,IAAiB,EAAE,IAAe,IAAY,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACzI,SAAS,QAAQ,CAAC,IAAiB,EAAE,KAAkB,IAAa,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACpL,SAAS,SAAS,CAAC,IAAiB,IAAa,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3G,SAAS,UAAU,CAAsB,KAA6B,EAAE,MAA4C,IAAwB,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtO,SAAS,YAAY,CAAsB,KAA6B,IAAyC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAA2B,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,gCAAgC,EAAE,yDAAyD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAA6B,CAAC,CAAC,CAAC,CAAC;AAChW,SAAS,mBAAmB,CAAsB,QAAmC;IACnF,OAAO,QAAQ,KAAK,IAAI;WACnB,OAAO,QAAQ,KAAK,QAAQ;WAC5B,QAAQ,CAAC,aAAa,KAAK,CAAC;WAC5B,QAAQ,CAAC,IAAI,KAAK,SAAS;WAC3B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;WAC7B,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;WACvC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM;WAC1C,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;WACzC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;AAChC,CAAC;AACD,SAAS,eAAe,KAA0B,OAAO,IAAI,CAAC,cAAc,EAAE,iCAAiC,EAAE,qCAAqC,CAAC,CAAC,CAAC,CAAC;AAC1J,SAAS,WAAW,CAAC,MAA0B,EAAE,KAAyB,IAAkB,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAChL,SAAS,cAAc,CAAC,UAAkB,IAA2B,OAAO,UAAU,KAAK,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,qCAAqC,EAAE,qDAAqD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC"}