pond-ts 0.11.8 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +184 -1
- package/dist/LivePartitionedSeries.d.ts +63 -8
- package/dist/LivePartitionedSeries.d.ts.map +1 -1
- package/dist/LivePartitionedSeries.js +167 -21
- package/dist/LivePartitionedSeries.js.map +1 -1
- package/dist/LivePartitionedSyncRolling.d.ts +80 -0
- package/dist/LivePartitionedSyncRolling.d.ts.map +1 -0
- package/dist/LivePartitionedSyncRolling.js +327 -0
- package/dist/LivePartitionedSyncRolling.js.map +1 -0
- package/dist/LiveRollingAggregation.d.ts +25 -36
- package/dist/LiveRollingAggregation.d.ts.map +1 -1
- package/dist/LiveRollingAggregation.js +53 -42
- package/dist/LiveRollingAggregation.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/triggers.d.ts +97 -0
- package/dist/triggers.d.ts.map +1 -0
- package/dist/triggers.js +52 -0
- package/dist/triggers.js.map +1 -0
- package/package.json +1 -1
- package/dist/LiveSequenceRollingAggregation.d.ts +0 -100
- package/dist/LiveSequenceRollingAggregation.d.ts.map +0 -1
- package/dist/LiveSequenceRollingAggregation.js +0 -170
- package/dist/LiveSequenceRollingAggregation.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,192 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
7
7
|
file covers both packages. Pre-1.0: minor bumps may include new features and
|
|
8
8
|
type-level changes; patch bumps are strictly additive.
|
|
9
9
|
|
|
10
|
-
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.
|
|
10
|
+
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.12.1...HEAD
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.12.1] — 2026-05-01
|
|
15
|
+
|
|
16
|
+
Strictly additive over v0.12.0. Closes the chained-view restriction
|
|
17
|
+
on synchronised partitioned rolling. The trigger option now applies
|
|
18
|
+
consistently across the entire `rolling()` surface — chained sugar
|
|
19
|
+
methods on the partitioned surface (`fill`, `diff`, `rate`,
|
|
20
|
+
`pctChange`, `cumulative`) no longer break it.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- **`partitionBy(col).<chained>().rolling(window, m, { trigger: Trigger.clock(seq) })` now works.**
|
|
25
|
+
Previously this threw a clear-but-restrictive error. The chain
|
|
26
|
+
factory runs per partition; the sync rolling subscribes to each
|
|
27
|
+
chain output instead of the raw partition events. Output schema is
|
|
28
|
+
unchanged (`[time, <partitionColumn>, ...mappingColumns]`); the
|
|
29
|
+
partition tag is set from the routing key, so chains that drop the
|
|
30
|
+
partition column still emit correctly.
|
|
31
|
+
|
|
32
|
+
Motivating example — per-host gap-filling before synchronised
|
|
33
|
+
ticks:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
const ticks = live
|
|
37
|
+
.partitionBy('host')
|
|
38
|
+
.fill({ cpu: 'hold' })
|
|
39
|
+
.rolling(
|
|
40
|
+
'1m',
|
|
41
|
+
{ cpu: 'avg' },
|
|
42
|
+
{ trigger: Trigger.clock(Sequence.every('200ms')) },
|
|
43
|
+
);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Coherence-of-feature fix: the trigger concept now applies wherever
|
|
47
|
+
`rolling()` appears in the partitioned chain, not just in the
|
|
48
|
+
one-step case. Captured in the RFC's post-implementation notes
|
|
49
|
+
alongside the deferred-and-now-shipped section.
|
|
50
|
+
|
|
51
|
+
### Tests
|
|
52
|
+
|
|
53
|
+
- 4 new tests in `test/Triggers.test.ts` covering chained-view sync
|
|
54
|
+
rolling: `fill().rolling(.., trigger)`, output schema, cross-
|
|
55
|
+
partition synchronisation through the chain, dispose semantics
|
|
56
|
+
through the chain, and replay-on-construction with the chain factory.
|
|
57
|
+
- 1 test removed (the throw-on-chained-view assertion that no longer
|
|
58
|
+
applies).
|
|
59
|
+
- Test count: 34 (was 30). Total core tests: 1043 (was 1039).
|
|
60
|
+
|
|
61
|
+
[0.12.1]: https://github.com/pjm17971/pond-ts/compare/v0.12.0...v0.12.1
|
|
62
|
+
|
|
63
|
+
## [0.12.0] — 2026-05-01
|
|
64
|
+
|
|
65
|
+
The "triggers" release. Major redesign of how live accumulators
|
|
66
|
+
control emission cadence — `Trigger` is now a first-class concept
|
|
67
|
+
shaped by two converging real-world use cases (synchronised
|
|
68
|
+
partitioned tick aggregation in the gRPC pipeline experiment,
|
|
69
|
+
sequence-sampled rolling in webapp telemetry).
|
|
70
|
+
|
|
71
|
+
Two correctness audits before publish: a Layer 2 Claude review
|
|
72
|
+
(column collision, dispose, late-spawn, peer-dep) and a Codex
|
|
73
|
+
adversarial review (quiet-partition stale samples, pre-existing
|
|
74
|
+
data replay at construction, spawn-listener cleanup). All findings
|
|
75
|
+
fixed and pinned with regression tests. 1039 / 1039 tests pass.
|
|
76
|
+
|
|
77
|
+
### Added
|
|
78
|
+
|
|
79
|
+
- **Trigger as a first-class concept.** A new `Trigger` factory
|
|
80
|
+
exposed at the package root lets `LiveRollingAggregation` switch
|
|
81
|
+
emission cadence without changing any other shape:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { LiveSeries, Sequence, Trigger } from 'pond-ts';
|
|
85
|
+
|
|
86
|
+
// Webapp telemetry: rolling 1m p95, emit on every 30 s of event-time
|
|
87
|
+
const rolling = timings.rolling(
|
|
88
|
+
'1m',
|
|
89
|
+
{ latency: 'p95' },
|
|
90
|
+
{ trigger: Trigger.clock(Sequence.every('30s')) },
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
rolling.on('event', (e) =>
|
|
94
|
+
fetch('/api/telemetry', { method: 'POST', body: JSON.stringify(e.data()) }),
|
|
95
|
+
);
|
|
96
|
+
rolling.value(); // current rolling-window snapshot, independent of trigger
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Two trigger variants in this release:
|
|
100
|
+
- **`Trigger.event()`** — per-event emission. Default; the historical
|
|
101
|
+
behavior of `LiveRollingAggregation` when no trigger is specified.
|
|
102
|
+
- **`Trigger.clock(sequence)`** — sequence-triggered emission. One
|
|
103
|
+
snapshot fires when a source event crosses an epoch-aligned
|
|
104
|
+
boundary of the (fixed-step) `Sequence`. Output keyed at boundary
|
|
105
|
+
instants. Calendar sequences are rejected upfront.
|
|
106
|
+
|
|
107
|
+
Future variants (`Trigger.count(n)`, custom predicates, compound
|
|
108
|
+
triggers) are reserved but not yet shipped.
|
|
109
|
+
|
|
110
|
+
- **Synchronised partitioned rolling.** `LivePartitionedSeries.rolling`
|
|
111
|
+
now accepts a clock trigger. The output is a
|
|
112
|
+
`LiveSource<RowSchema>` whose schema is `[time, <partitionColumn>,
|
|
113
|
+
...mappingColumns]`; on every boundary crossing, one event fires
|
|
114
|
+
per known partition, all sharing the same boundary timestamp.
|
|
115
|
+
Synchronised across partitions by construction (the bucket index is
|
|
116
|
+
shared, not per-partition).
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
// Dashboard tick aggregation: 100 hosts, 200ms cadence
|
|
120
|
+
const ticks = live
|
|
121
|
+
.partitionBy('host')
|
|
122
|
+
.rolling(
|
|
123
|
+
'1m',
|
|
124
|
+
{ cpu: 'avg' },
|
|
125
|
+
{ trigger: Trigger.clock(Sequence.every('200ms')) },
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
ticks.on('event', (e) => {
|
|
129
|
+
// e.begin() === <boundary timestamp>, same for every host this tick
|
|
130
|
+
// e.get('host') === 'api-1' | 'api-2' | …
|
|
131
|
+
// e.get('cpu') === <rolling avg for that host>
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Restricted to direct-after-`partitionBy` in this release: chained
|
|
136
|
+
sugar (`partitionBy(c).fill(...).rolling(...)`) rejects clock
|
|
137
|
+
triggers with a clear error. Lifts in a future release once a real
|
|
138
|
+
use case appears.
|
|
139
|
+
|
|
140
|
+
Closes the gRPC experiment's M3.5 dashboard friction note (the
|
|
141
|
+
hand-rolled `HostAggregator` becomes ~10 lines of pond code).
|
|
142
|
+
|
|
143
|
+
### Removed (breaking — pre-1.0)
|
|
144
|
+
|
|
145
|
+
- **`LiveSequenceRollingAggregation`** class deleted. Its capability
|
|
146
|
+
is preserved as `LiveRollingAggregation` with
|
|
147
|
+
`{ trigger: Trigger.clock(sequence) }`. Migration: replace
|
|
148
|
+
`live.rolling('1m', m).sample(seq)` with
|
|
149
|
+
`live.rolling('1m', m, { trigger: Trigger.clock(seq) })`. Single
|
|
150
|
+
rolling object now serves both backend reporting and direct
|
|
151
|
+
`.value()` reads (no separate sampler reference).
|
|
152
|
+
- **`.sample(sequence)`** method removed from `LiveRollingAggregation`.
|
|
153
|
+
Use the trigger option above.
|
|
154
|
+
|
|
155
|
+
### Changed
|
|
156
|
+
|
|
157
|
+
- **`LiveRollingOptions`** gains an optional `trigger?: Trigger`
|
|
158
|
+
field. Default behavior (no `trigger` specified) is unchanged from
|
|
159
|
+
v0.11.x — per-event emission. Backward compatible for everyone
|
|
160
|
+
who didn't use `.sample()`.
|
|
161
|
+
|
|
162
|
+
### Performance
|
|
163
|
+
|
|
164
|
+
- New benchmark `scripts/perf-triggers.mjs` covers both
|
|
165
|
+
non-partitioned and synchronised partitioned cases. Headline numbers
|
|
166
|
+
on a current MacBook Pro:
|
|
167
|
+
- Non-partitioned: clock(30s) ~50% faster than per-event baseline
|
|
168
|
+
(emission is rarer); clock(1s) similar.
|
|
169
|
+
- Synchronised partitioned (100 hosts, 30k events at realistic
|
|
170
|
+
rates): ~300 ns/emission at 200ms cadence; +205% over per-
|
|
171
|
+
partition baseline at the high end. Well within budget for the
|
|
172
|
+
motivating dashboard use case.
|
|
173
|
+
|
|
174
|
+
### Notes
|
|
175
|
+
|
|
176
|
+
- **`docs/rfcs/triggers.md`** captures the full design rationale,
|
|
177
|
+
the four sign-off questions, and the migration plan. Read this if
|
|
178
|
+
you want the "why this shape" context.
|
|
179
|
+
|
|
180
|
+
### Known limitations
|
|
181
|
+
|
|
182
|
+
- **Synchronised partitioned rolling output type is loose** —
|
|
183
|
+
`LiveSource<SeriesSchema>` rather than a schema-narrowed shape.
|
|
184
|
+
Runtime schema is correct; only static types widen. Tightening is
|
|
185
|
+
queued for a follow-up release.
|
|
186
|
+
- **Synchronised partitioned rolling rejects column-name collisions**
|
|
187
|
+
between the partition column and any reducer-output column at
|
|
188
|
+
construction (e.g. `partitionBy('cpu').rolling('1m', { cpu: 'avg' }, { trigger })`).
|
|
189
|
+
Rename the reducer output (once `AggregateOutputMap` lands on live
|
|
190
|
+
rolling) or partition by a different column.
|
|
191
|
+
- **Late-spawn partitions only appear in ticks after their first event
|
|
192
|
+
arrives.** A partition unknown to the sync source contributes no
|
|
193
|
+
row to the current tick. Use `partitionBy(col, { groups: [...] })`
|
|
194
|
+
to eagerly include partitions from construction.
|
|
195
|
+
|
|
14
196
|
## [0.11.8] — 2026-04-30
|
|
15
197
|
|
|
16
198
|
### Added
|
|
@@ -61,6 +243,7 @@ type-level changes; patch bumps are strictly additive.
|
|
|
61
243
|
frontend-collection → backend-summary pattern using `.sample()`,
|
|
62
244
|
plus the React in-app display via `useLiveQuery`.
|
|
63
245
|
|
|
246
|
+
[0.12.0]: https://github.com/pjm17971/pond-ts/compare/v0.11.8...v0.12.0
|
|
64
247
|
[0.11.8]: https://github.com/pjm17971/pond-ts/compare/v0.11.7...v0.11.8
|
|
65
248
|
|
|
66
249
|
## [0.11.7] — 2026-04-29
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { LiveSeries, type LiveSeriesOptions } from './LiveSeries.js';
|
|
2
|
+
import { LivePartitionedSyncRolling } from './LivePartitionedSyncRolling.js';
|
|
2
3
|
import { type LiveFillMapping, type LiveFillStrategy } from './LiveView.js';
|
|
4
|
+
import type { Trigger } from './triggers.js';
|
|
3
5
|
import { type AggregateMap, type DiffSchema, type EventDataForSchema, type LiveSource, type NumericColumnNameForSchema, type RollingSchema, type SeriesSchema } from './types.js';
|
|
4
6
|
import type { DurationInput } from './utils/duration.js';
|
|
5
7
|
import type { LiveRollingOptions, RollingWindow } from './LiveRollingAggregation.js';
|
|
@@ -165,19 +167,53 @@ export declare class LivePartitionedSeries<S extends SeriesSchema, K extends str
|
|
|
165
167
|
/**
|
|
166
168
|
* Per-partition `rolling`. See {@link LiveSeries.rolling}.
|
|
167
169
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
170
|
+
* Two emission modes, chosen by the `trigger` option:
|
|
171
|
+
*
|
|
172
|
+
* **Default (no trigger / `Trigger.event()`):** per-partition
|
|
173
|
+
* rolling — each partition has its own `LiveRollingAggregation`
|
|
174
|
+
* emitting per source event. Returns a chainable
|
|
175
|
+
* `LivePartitionedView`.
|
|
176
|
+
*
|
|
177
|
+
* In this mode the partition column **drops by default** —
|
|
178
|
+
* `rolling`'s output schema only retains columns named in
|
|
179
|
+
* `mapping`. Without including the partition column, the unified
|
|
180
|
+
* output of the chain loses the partition tag (e.g. `host` becomes
|
|
181
|
+
* `undefined`). To keep the partition column visible, include it
|
|
182
|
+
* with a passthrough reducer:
|
|
174
183
|
*
|
|
175
184
|
* ```ts
|
|
176
185
|
* partitioned.rolling('5m', { cpu: 'avg', host: 'last' })
|
|
177
186
|
* // ^^^^^^^^^^^^^^
|
|
178
187
|
* ```
|
|
188
|
+
*
|
|
189
|
+
* **`Trigger.clock(seq)`:** synchronised partitioned rolling — all
|
|
190
|
+
* partitions share one bucket index and emit together at each
|
|
191
|
+
* boundary crossing. Returns a flat `LiveSource<RowSchema>` whose
|
|
192
|
+
* schema is `[time, <partitionColumn>, ...mappingColumns]`.
|
|
193
|
+
*
|
|
194
|
+
* In this mode the partition column is **auto-injected** from the
|
|
195
|
+
* routing key — do NOT include it in `mapping`. A collision
|
|
196
|
+
* between the partition column name and any reducer-output column
|
|
197
|
+
* is rejected at construction with a clear error.
|
|
198
|
+
*
|
|
199
|
+
* ```ts
|
|
200
|
+
* partitioned.rolling(
|
|
201
|
+
* '5m',
|
|
202
|
+
* { cpu: 'avg' }, // host is auto-injected
|
|
203
|
+
* { trigger: Trigger.clock(Sequence.every('200ms')) },
|
|
204
|
+
* );
|
|
205
|
+
* ```
|
|
179
206
|
*/
|
|
180
|
-
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions
|
|
207
|
+
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
208
|
+
trigger?: {
|
|
209
|
+
kind: 'event';
|
|
210
|
+
};
|
|
211
|
+
}): LivePartitionedView<S, RollingSchema<S, M>, K>;
|
|
212
|
+
rolling<const M extends AggregateMap<S>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
213
|
+
trigger: {
|
|
214
|
+
kind: 'clock';
|
|
215
|
+
} & Trigger;
|
|
216
|
+
}): LiveSource<SeriesSchema>;
|
|
181
217
|
/**
|
|
182
218
|
* Dispose of the partitioned view: unsubscribe from the source,
|
|
183
219
|
* disconnect every per-partition pipeline subscriber (created
|
|
@@ -199,6 +235,16 @@ export declare class LivePartitionedSeries<S extends SeriesSchema, K extends str
|
|
|
199
235
|
* subscriptions that would otherwise leak across repeated calls.
|
|
200
236
|
*/
|
|
201
237
|
_addDisposer(fn: () => void): void;
|
|
238
|
+
/**
|
|
239
|
+
* @internal — used by `LivePartitionedView.rolling`'s clock-trigger
|
|
240
|
+
* branch to wire a sync rolling whose reducer-input schema is the
|
|
241
|
+
* chain output `R` rather than the source schema `S`. The view
|
|
242
|
+
* passes its composed factory; this method delegates to
|
|
243
|
+
* `#wireSyncRolling` with `ownsFactoryOutput: true` because the
|
|
244
|
+
* chain output (a LiveView / LiveRollingAggregation / etc.) has
|
|
245
|
+
* its own upstream subscription that must be torn down on dispose.
|
|
246
|
+
*/
|
|
247
|
+
_wireSyncRollingFromView<R extends SeriesSchema>(sync: LivePartitionedSyncRolling<R, K, SeriesSchema>, factory: (partition: LiveSeries<S>) => LiveSource<R>): void;
|
|
202
248
|
}
|
|
203
249
|
/**
|
|
204
250
|
* Chained typed view over a {@link LivePartitionedSeries}. Returned
|
|
@@ -290,6 +336,15 @@ export declare class LivePartitionedView<SBase extends SeriesSchema, R extends S
|
|
|
290
336
|
* partition column with a passthrough reducer (e.g.
|
|
291
337
|
* `host: 'last'`) to keep it visible in the unified output.
|
|
292
338
|
*/
|
|
293
|
-
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions
|
|
339
|
+
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options?: LiveRollingOptions & {
|
|
340
|
+
trigger?: {
|
|
341
|
+
kind: 'event';
|
|
342
|
+
};
|
|
343
|
+
}): LivePartitionedView<SBase, RollingSchema<R, M>, K>;
|
|
344
|
+
rolling<const M extends AggregateMap<R>>(window: RollingWindow, mapping: M, options: LiveRollingOptions & {
|
|
345
|
+
trigger: {
|
|
346
|
+
kind: 'clock';
|
|
347
|
+
} & Trigger;
|
|
348
|
+
}): LiveSource<SeriesSchema>;
|
|
294
349
|
}
|
|
295
350
|
//# sourceMappingURL=LivePartitionedSeries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePartitionedSeries.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LivePartitionedSeries.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LiveSeries } from './LiveSeries.js';
|
|
2
2
|
import { LiveRollingAggregation } from './LiveRollingAggregation.js';
|
|
3
|
+
import { LivePartitionedSyncRolling } from './LivePartitionedSyncRolling.js';
|
|
3
4
|
import { makeCumulativeView, makeDiffView, makeFillView, } from './LiveView.js';
|
|
4
5
|
/** Encoder for partition values → keys. Mirrors the batch single-column case. */
|
|
5
6
|
function partitionKey(event, col) {
|
|
@@ -314,22 +315,37 @@ export class LivePartitionedSeries {
|
|
|
314
315
|
cumulative(spec) {
|
|
315
316
|
return new LivePartitionedView(this, (sub) => makeCumulativeView(sub, spec));
|
|
316
317
|
}
|
|
317
|
-
/**
|
|
318
|
-
* Per-partition `rolling`. See {@link LiveSeries.rolling}.
|
|
319
|
-
*
|
|
320
|
-
* **Partition column drops by default.** `rolling`'s output
|
|
321
|
-
* schema only retains columns named in `mapping`. Without
|
|
322
|
-
* including the partition column, the unified output of the
|
|
323
|
-
* chain loses the partition tag (e.g. `host` becomes
|
|
324
|
-
* `undefined`). To keep the partition column visible, include
|
|
325
|
-
* it in `mapping` with a passthrough reducer:
|
|
326
|
-
*
|
|
327
|
-
* ```ts
|
|
328
|
-
* partitioned.rolling('5m', { cpu: 'avg', host: 'last' })
|
|
329
|
-
* // ^^^^^^^^^^^^^^
|
|
330
|
-
* ```
|
|
331
|
-
*/
|
|
332
318
|
rolling(window, mapping, options) {
|
|
319
|
+
// Clock trigger → synchronised partitioned emission. Returns a
|
|
320
|
+
// LiveSource<RowSchema> directly (no LivePartitionedView wrap)
|
|
321
|
+
// because the output is already a flat per-partition-row stream;
|
|
322
|
+
// each tick fires N events (one per known partition) at the same
|
|
323
|
+
// boundary timestamp.
|
|
324
|
+
if (options?.trigger?.kind === 'clock') {
|
|
325
|
+
const syncOptions = {};
|
|
326
|
+
if (options.minSamples !== undefined)
|
|
327
|
+
syncOptions.minSamples = options.minSamples;
|
|
328
|
+
if (this.groups !== undefined)
|
|
329
|
+
syncOptions.declaredGroups = this.groups;
|
|
330
|
+
// Look up the partition column's kind from the source schema —
|
|
331
|
+
// it stays the same across both root and chained cases and is
|
|
332
|
+
// used only for the output schema's byColumn entry.
|
|
333
|
+
const byCol = this.schema.find((c) => c.name === this.by);
|
|
334
|
+
if (!byCol) {
|
|
335
|
+
throw new TypeError(`LivePartitionedSeries.rolling: column '${this.by}' not in source schema`);
|
|
336
|
+
}
|
|
337
|
+
const sync = new LivePartitionedSyncRolling(this.name, this.by, byCol.kind, this.schema, window, mapping, options.trigger, syncOptions);
|
|
338
|
+
// Wire the sync rolling: subscribe to each partition's raw
|
|
339
|
+
// events. Root case — factory is identity (the partition IS the
|
|
340
|
+
// event source). Pass ownsFactoryOutput: false because the
|
|
341
|
+
// partition LiveSeries is owned by this series, not by the
|
|
342
|
+
// sync rolling — disposing the sync must NOT tear down the
|
|
343
|
+
// partition itself.
|
|
344
|
+
this.#wireSyncRolling(sync, (partition) => partition,
|
|
345
|
+
/* ownsFactoryOutput */ false);
|
|
346
|
+
return sync;
|
|
347
|
+
}
|
|
348
|
+
// Default: per-partition rolling with per-partition emission.
|
|
333
349
|
return new LivePartitionedView(this, (sub) => new LiveRollingAggregation(sub, window, mapping, options));
|
|
334
350
|
}
|
|
335
351
|
/**
|
|
@@ -362,6 +378,113 @@ export class LivePartitionedSeries {
|
|
|
362
378
|
this.#disposers.add(fn);
|
|
363
379
|
}
|
|
364
380
|
// ─── Internal ─────────────────────────────────────────────────
|
|
381
|
+
/**
|
|
382
|
+
* Wire a `LivePartitionedSyncRolling` into this partitioned series.
|
|
383
|
+
*
|
|
384
|
+
* Used by both the root case (`partitionBy(c).rolling(..., trigger)`,
|
|
385
|
+
* factory is identity) and the chained-view case
|
|
386
|
+
* (`partitionBy(c).fill(...).rolling(..., trigger)`, factory is the
|
|
387
|
+
* chain's compose function), so the cross-partition replay,
|
|
388
|
+
* subscription, and spawn-listener cleanup logic lives in one place.
|
|
389
|
+
*
|
|
390
|
+
* - Calls `factory(partition)` once per existing partition to
|
|
391
|
+
* produce a per-partition event source. For the root case, this
|
|
392
|
+
* is the partition's own `LiveSeries`; for the chained case, it's
|
|
393
|
+
* the post-chain `LiveSource<R>`.
|
|
394
|
+
* - Replays each event source's existing events into `sync.ingest`
|
|
395
|
+
* in **global timestamp order across partitions** so the shared
|
|
396
|
+
* bucket index advances monotonically. (Per-partition order alone
|
|
397
|
+
* would let a later-iterated partition's earlier events silently
|
|
398
|
+
* no-op as `bucketIdx <= lastBucketIdx`.)
|
|
399
|
+
* - Subscribes `sync.ingest` to each event source's `'event'`
|
|
400
|
+
* stream for future events.
|
|
401
|
+
* - Adds a spawn listener to the parent so newly-spawned partitions
|
|
402
|
+
* get their factory invoked + sync subscribed automatically.
|
|
403
|
+
* - All disposers are registered with BOTH `sync` (so
|
|
404
|
+
* `sync.dispose()` detaches them) and the parent's `#disposers`
|
|
405
|
+
* (so the parent's dispose path also detaches them). Idempotent
|
|
406
|
+
* in either order.
|
|
407
|
+
*
|
|
408
|
+
* **Factory-output ownership.** When `ownsFactoryOutput` is true
|
|
409
|
+
* (chained-view case — factory creates a LiveView / Rolling /
|
|
410
|
+
* Aggregation that itself subscribes upstream), we ALSO register
|
|
411
|
+
* `out.dispose()` so the chain output's upstream subscription
|
|
412
|
+
* tears down. Without this, disposing the sync rolling only
|
|
413
|
+
* removes our listener; the chain view keeps processing
|
|
414
|
+
* partition events into its own buffer indefinitely (real leak,
|
|
415
|
+
* surfaces under repeated create/dispose cycles or high-cardinality
|
|
416
|
+
* partitions). The root case (`ownsFactoryOutput: false`) skips
|
|
417
|
+
* dispose because the partition LiveSeries is owned by the parent
|
|
418
|
+
* series, not by the sync rolling.
|
|
419
|
+
*/
|
|
420
|
+
#wireSyncRolling(sync, factory, ownsFactoryOutput) {
|
|
421
|
+
// Build per-partition factory outputs once. Reused for both
|
|
422
|
+
// replay (existing events) and subscription (future events) so
|
|
423
|
+
// we don't run the factory twice on the same partition.
|
|
424
|
+
const factoryOutputs = new Map();
|
|
425
|
+
for (const [key, partition] of this.#partitions) {
|
|
426
|
+
factoryOutputs.set(key, factory(partition));
|
|
427
|
+
}
|
|
428
|
+
const existing = [];
|
|
429
|
+
for (const [key, out] of factoryOutputs) {
|
|
430
|
+
for (let i = 0; i < out.length; i++) {
|
|
431
|
+
const ev = out.at(i);
|
|
432
|
+
existing.push({ ts: ev.begin(), key, event: ev });
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
existing.sort((a, b) => a.ts - b.ts);
|
|
436
|
+
for (const { key, event } of existing) {
|
|
437
|
+
sync.ingest(key, event);
|
|
438
|
+
}
|
|
439
|
+
// Subscribe to each existing factory output's future events.
|
|
440
|
+
// If we own the output, also register its dispose() so the
|
|
441
|
+
// chain's upstream subscription tears down on cleanup.
|
|
442
|
+
const wireOutput = (out, key) => {
|
|
443
|
+
const unsub = out.on('event', (event) => sync.ingest(key, event));
|
|
444
|
+
const cleanup = ownsFactoryOutput
|
|
445
|
+
? () => {
|
|
446
|
+
unsub();
|
|
447
|
+
// Duck-typed: chain outputs (LiveView, LiveRolling-
|
|
448
|
+
// Aggregation, LiveAggregation) all expose `dispose()`;
|
|
449
|
+
// a defensive `?.` covers any future LiveSource impl
|
|
450
|
+
// that doesn't.
|
|
451
|
+
out.dispose?.();
|
|
452
|
+
}
|
|
453
|
+
: unsub;
|
|
454
|
+
sync._registerUnsubscribe(cleanup);
|
|
455
|
+
this.#disposers.add(cleanup);
|
|
456
|
+
};
|
|
457
|
+
for (const [key, out] of factoryOutputs) {
|
|
458
|
+
wireOutput(out, key);
|
|
459
|
+
}
|
|
460
|
+
// Future spawns: invoke factory on each new partition and
|
|
461
|
+
// subscribe sync to its output. Newly-spawned partitions have no
|
|
462
|
+
// existing events, so no replay is needed for them.
|
|
463
|
+
const onSpawnSet = this.#onSpawn;
|
|
464
|
+
const spawnHandler = (key, partition) => {
|
|
465
|
+
// The SpawnListener signature uses LiveSource<S> for back-
|
|
466
|
+
// compatibility with collect/apply, but #spawnPartition always
|
|
467
|
+
// creates a LiveSeries<S> — safe to narrow here.
|
|
468
|
+
wireOutput(factory(partition), key);
|
|
469
|
+
};
|
|
470
|
+
onSpawnSet.add(spawnHandler);
|
|
471
|
+
// Register the spawn-handler removal with sync.dispose() so the
|
|
472
|
+
// parent doesn't retain the disposed sync via this closure
|
|
473
|
+
// (would otherwise leak across create/dispose cycles).
|
|
474
|
+
sync._registerUnsubscribe(() => onSpawnSet.delete(spawnHandler));
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* @internal — used by `LivePartitionedView.rolling`'s clock-trigger
|
|
478
|
+
* branch to wire a sync rolling whose reducer-input schema is the
|
|
479
|
+
* chain output `R` rather than the source schema `S`. The view
|
|
480
|
+
* passes its composed factory; this method delegates to
|
|
481
|
+
* `#wireSyncRolling` with `ownsFactoryOutput: true` because the
|
|
482
|
+
* chain output (a LiveView / LiveRollingAggregation / etc.) has
|
|
483
|
+
* its own upstream subscription that must be torn down on dispose.
|
|
484
|
+
*/
|
|
485
|
+
_wireSyncRollingFromView(sync, factory) {
|
|
486
|
+
this.#wireSyncRolling(sync, factory, /* ownsFactoryOutput */ true);
|
|
487
|
+
}
|
|
365
488
|
#spawnPartition(key) {
|
|
366
489
|
const opts = {
|
|
367
490
|
name: `${this.name}/${String(key)}`,
|
|
@@ -526,13 +649,36 @@ export class LivePartitionedView {
|
|
|
526
649
|
const prev = this.#factory;
|
|
527
650
|
return new LivePartitionedView(this.#root, (sub) => makeCumulativeView(prev(sub), spec));
|
|
528
651
|
}
|
|
529
|
-
/**
|
|
530
|
-
* **Partition column drops by default.** `rolling`'s output
|
|
531
|
-
* schema only retains columns named in `mapping`. Include the
|
|
532
|
-
* partition column with a passthrough reducer (e.g.
|
|
533
|
-
* `host: 'last'`) to keep it visible in the unified output.
|
|
534
|
-
*/
|
|
535
652
|
rolling(window, mapping, options) {
|
|
653
|
+
// Clock trigger → synchronised partitioned emission on the chain
|
|
654
|
+
// output. The chain factory runs once per partition; the sync
|
|
655
|
+
// rolling subscribes to each chain output's events (so reducers
|
|
656
|
+
// operate on `R`, not the raw source `S`). Output rows still tag
|
|
657
|
+
// each event with the partition key from the routing layer, so
|
|
658
|
+
// even chains that drop the partition column (e.g. `.select()`
|
|
659
|
+
// without retaining it) emit correctly.
|
|
660
|
+
if (options?.trigger?.kind === 'clock') {
|
|
661
|
+
const root = this.#root;
|
|
662
|
+
const byCol = root.schema.find((c) => c.name === root.by);
|
|
663
|
+
if (!byCol) {
|
|
664
|
+
throw new TypeError(`LivePartitionedView.rolling: column '${root.by}' not in source schema`);
|
|
665
|
+
}
|
|
666
|
+
const syncOptions = {};
|
|
667
|
+
if (options.minSamples !== undefined)
|
|
668
|
+
syncOptions.minSamples = options.minSamples;
|
|
669
|
+
if (root.groups !== undefined)
|
|
670
|
+
syncOptions.declaredGroups = root.groups;
|
|
671
|
+
// The reducer-input schema is the chain output schema `R`,
|
|
672
|
+
// captured upfront on this view (via the factory-stub run in
|
|
673
|
+
// the constructor).
|
|
674
|
+
const sync = new LivePartitionedSyncRolling(root.name, root.by, byCol.kind, this.schema, window, mapping, options.trigger, syncOptions);
|
|
675
|
+
// Wire via the root's helper, but pass the composed chain
|
|
676
|
+
// factory (so each partition's events flow through the chain
|
|
677
|
+
// before reaching the sync rolling).
|
|
678
|
+
const chainFactory = this.#factory;
|
|
679
|
+
root._wireSyncRollingFromView(sync, chainFactory);
|
|
680
|
+
return sync;
|
|
681
|
+
}
|
|
536
682
|
const prev = this.#factory;
|
|
537
683
|
return new LivePartitionedView(this.#root, (sub) => new LiveRollingAggregation(prev(sub), window, mapping, options));
|
|
538
684
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePartitionedSeries.js","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LivePartitionedSeries.js","sourceRoot":"","sources":["../src/LivePartitionedSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0B,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,GAGb,MAAM,eAAe,CAAC;AAwCvB,iFAAiF;AACjF,SAAS,YAAY,CACnB,KAA0C,EAC1C,GAAW;IAEX,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,qBAAqB;IAIhC,sEAAsE;IACtE,6DAA6D;IAC7D,qEAAqE;IACrE,wEAAwE;IACxE,iEAAiE;IACjE,iEAAiE;IACjE,uCAAuC;IAC9B,IAAI,CAAS;IACb,MAAM,CAAI;IACV,EAAE,CAAuC;IACzC,MAAM,CAAoB;IAE1B,WAAW,CAAwB;IACnC,iBAAiB,CAIxB;IACO,QAAQ,CAA2B;IACnC,UAAU,CAAkB;IAC5B,kBAAkB,CAAa;IAExC,YACE,MAAqB,EACrB,EAAwC,EACxC,UAAqC,EAAE;QAEvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CACjB,kCAAkC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAC9D,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChB,MAAM,IAAI,SAAS,CACjB,0CAA0C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAC7E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QAClC,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,OAAuC;QAC7C,MAAM,cAAc,GAAyB;YAC3C,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS;YACjC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7C,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS;YACpC,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACnD,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;YAClC,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAE/C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAI,cAAc,CAAC,CAAC;QAElD,MAAM,oBAAoB,GAAG,CAAC,SAAwB,EAAgB,EAAE;YACtE,OAAO,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAOF,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,KAAK,CACH,OAA8C,EAC9C,OAAuC;QAEvC,8DAA8D;QAC9D,6DAA6D;QAC7D,8DAA8D;QAC9D,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAI;YAC7B,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAM,OAAO,CAAC,MAAM,CAAC;QAEpC,MAAM,IAAI,GAAyB;YACjC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;YAChC,MAAM,EAAE,SAAS;SAClB,CAAC;QACF,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS;YACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACzC,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;QAExC,gEAAgE;QAChE,+DAA+D;QAC/D,+DAA+D;QAC/D,4DAA4D;QAC5D,8DAA8D;QAC9D,gEAAgE;QAChE,MAAM,OAAO,GAA0C,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,SAA0B,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAGD,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,+DAA+D;QAC/D,cAAc;QACd,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,4DAA4D;QAC5D,8DAA8D;QAC9D,gEAAgE;QAChE,4DAA4D;QAC5D,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,SAA0B,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iEAAiE;IACjE,EAAE;IACF,kEAAkE;IAClE,+DAA+D;IAC/D,uDAAuD;IACvD,oCAAoC;IACpC,EAAE;IACF,8DAA8D;IAC9D,EAAE;IACF,iEAAiE;IACjE,WAAW;IAEX,yDAAyD;IACzD,IAAI,CACF,QAA+C,EAC/C,OAA4B;QAE5B,OAAO,IAAI,mBAAmB,CAAU,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACpD,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,IAAI,CACF,OAAmC,EACnC,OAA4B;QAE5B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAEzC,CACJ,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,IAAI,CACF,OAAmC,EACnC,OAA4B;QAE5B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAEzC,CACJ,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,SAAS,CACP,OAAmC,EACnC,OAA4B;QAE5B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CACV,GAAG,EACH,WAAW,EACX,OAAO,EACP,OAAO,CACwC,CACpD,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,UAAU,CAAsD,IAO/D;QACC,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,CAAC,GAAG,EAAE,EAAE,CACN,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAE3B,CACJ,CAAC;IACJ,CAAC;IAoDD,OAAO,CACL,MAAqB,EACrB,OAAU,EACV,OAA4B;QAE5B,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,iEAAiE;QACjE,sBAAsB;QACtB,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,MAAM,WAAW,GAGb,EAAE,CAAC;YACP,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAClC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YACxE,+DAA+D;YAC/D,8DAA8D;YAC9D,oDAAoD;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CACjB,0CAA0C,IAAI,CAAC,EAAE,wBAAwB,CAC1E,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,0BAA0B,CACzC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,EACP,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,MAAM,EACX,MAAM,EACN,OAAqC,EACrC,OAAO,CAAC,OAAO,EACf,WAAW,CACZ,CAAC;YACF,2DAA2D;YAC3D,gEAAgE;YAChE,2DAA2D;YAC3D,2DAA2D;YAC3D,2DAA2D;YAC3D,oBAAoB;YACpB,IAAI,CAAC,gBAAgB,CACnB,IAAI,EACJ,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS;YACxB,uBAAuB,CAAC,KAAK,CAC9B,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8DAA8D;QAC9D,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,sBAAsB,CACxB,GAAG,EACH,MAAM,EACN,OAA0B,EAC1B,OAAO,CACsC,CAClD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO;QACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,EAAc;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,iEAAiE;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,gBAAgB,CACd,IAAoD,EACpD,OAAoD,EACpD,iBAA0B;QAE1B,4DAA4D;QAC5D,+DAA+D;QAC/D,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;QAID,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,6DAA6D;QAC7D,2DAA2D;QAC3D,uDAAuD;QACvD,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAM,EAAQ,EAAE;YACtD,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,iBAAiB;gBAC/B,CAAC,CAAC,GAAG,EAAE;oBACH,KAAK,EAAE,CAAC;oBACR,oDAAoD;oBACpD,wDAAwD;oBACxD,qDAAqD;oBACrD,gBAAgB;oBACf,GAAgD,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC;YACV,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;YACxC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,0DAA0D;QAC1D,iEAAiE;QACjE,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,MAAM,YAAY,GAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YAC3D,2DAA2D;YAC3D,+DAA+D;YAC/D,iDAAiD;YACjD,UAAU,CAAC,OAAO,CAAC,SAA0B,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7B,gEAAgE;QAChE,2DAA2D;QAC3D,uDAAuD;QACvD,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAwB,CACtB,IAAoD,EACpD,OAAoD;QAEpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CAAC,GAAM;QACpB,MAAM,IAAI,GAAyB;YACjC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,KAAK,SAAS;YAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,SAAS;YAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;QACxD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,SAAS;YAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ;YAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAwB;QAClC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAM,CAAC;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,SAAS,CACjB,sDAAsD,IAAI,CAAC,SAAS,CAClE,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CACvC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,oCAAoC;oBAClE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,8DAA8D;AAC9D,kEAAkE;AAClE,SAAS,UAAU,CACjB,KAAwB,EACxB,MAAS;IAET,MAAM,GAAG,GAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,MAAM,CAAC,CAAC,CAAsB,CAAC,IAAa,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,GAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,mBAAmB;IAKrB,KAAK,CAAkC;IACvC,QAAQ,CAA4C;IAE7D;;;OAGG;IACM,MAAM,CAAI;IAEnB,kDAAkD;IAClD,YACE,IAAqC,EACrC,OAAkD;QAElD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,gEAAgE;QAChE,uCAAuC;QACvC,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAQ;YACjC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,wFAAwF;IACxF,OAAO,CAAC,OAAuC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,KAAK,CACH,OAA+C,EAC/C,OAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CACrB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAA8B,EAC5D,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAwB,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrB,0DAA0D;YAC1D,4DAA4D;YAC5D,sDAAsD;YACtD,wDAAwD;YACxD,6DAA6D;YAC7D,MAAM,cAAc,GAAG,GAA+B,CAAC;YACvD,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gEAAgE;IAEhE,IAAI,CACF,QAA+C,EAC/C,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAAc,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAC9D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,IAAI,CACF,OAAmC,EACnC,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CACV,IAAI,CAAC,GAAG,CAAC,EACT,MAAM,EACN,OAAO,EACP,OAAO,CACwC,CACpD,CAAC;IACJ,CAAC;IAED,IAAI,CACF,OAAmC,EACnC,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CACV,IAAI,CAAC,GAAG,CAAC,EACT,MAAM,EACN,OAAO,EACP,OAAO,CACwC,CACpD,CAAC;IACJ,CAAC;IAED,SAAS,CACP,OAAmC,EACnC,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,EAAE,EAAE,CACN,YAAY,CACV,IAAI,CAAC,GAAG,CAAC,EACT,WAAW,EACX,OAAO,EACP,OAAO,CACwC,CACpD,CAAC;IACJ,CAAC;IAED,UAAU,CAAsD,IAO/D;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,EAAE,EAAE,CACN,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAEjC,CACJ,CAAC;IACJ,CAAC;IAkBD,OAAO,CACL,MAAqB,EACrB,OAAU,EACV,OAA4B;QAI5B,iEAAiE;QACjE,8DAA8D;QAC9D,gEAAgE;QAChE,iEAAiE;QACjE,+DAA+D;QAC/D,+DAA+D;QAC/D,wCAAwC;QACxC,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CACjB,wCAAwC,IAAI,CAAC,EAAE,wBAAwB,CACxE,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAGb,EAAE,CAAC;YACP,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAClC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAExE,2DAA2D;YAC3D,6DAA6D;YAC7D,oBAAoB;YACpB,MAAM,IAAI,GAAG,IAAI,0BAA0B,CACzC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,EACP,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,MAAM,EACX,MAAM,EACN,OAAqC,EACrC,OAAO,CAAC,OAAO,EACf,WAAW,CACZ,CAAC;YAEF,0DAA0D;YAC1D,6DAA6D;YAC7D,qCAAqC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,sBAAsB,CACxB,IAAI,CAAC,GAAG,CAAC,EACT,MAAM,EACN,OAA0B,EAC1B,OAAO,CACsC,CAClD,CAAC;IACJ,CAAC;CACF"}
|