@detergent-software/conductor 3.5.0-dev.15 → 3.5.0-dev.17

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 CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  Releases are tagged `conductor-v<version>` and staged on npm by `atk-conductor-release` (`pipelines/release-conductor.yml`), which writes each section below. `scripts/check-changelog.mjs` fails when a tag has no section here.
4
4
 
5
+ ## [3.5.0-dev.17](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTconductor-v3.5.0-dev.16&targetVersion=GTconductor-v3.5.0-dev.17) (2026-11-01)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **conductor:** clear a long park's held-process item once it exits (ATK-880) ([30d690f](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/30d690f4431bae579aee85d98a326e5ed8d6dd40))
10
+ * **conductor:** keep a long park's held-process check honest (ATK-880) ([0682c2f](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0682c2f763792c7401210dcb1270ece1e413feba))
11
+ * **conductor:** keep an earlier park's held processes through a re-park (ATK-880) ([439dbf5](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/439dbf51d0a96c4f5d5b8bca4861feeabb547cbd))
12
+
13
+ ## [3.5.0-dev.16](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTconductor-v3.5.0-dev.15&targetVersion=GTconductor-v3.5.0-dev.16) (2026-11-01)
14
+
15
+ ### Features
16
+
17
+ * **conductor:** say what held the event loop in a stall warning (ATK-712) ([d92d382](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d92d38266e76ed9fd87bfdaa8293836cd9421cfe))
18
+
19
+ ### Bug Fixes
20
+
21
+ * **conductor:** delete worktrees in a child process (ATK-712) ([2376ead](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/2376eada29b5872b9e6f122796d72b85f167917c))
22
+ * **conductor:** keep the stall warning's attribution honest (ATK-712) ([3cfb37d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/3cfb37dcb920e9c2437dcf0aa0a732cb44818e28))
23
+ * **conductor:** name a spawn's program the same on every OS (ATK-712) ([a585251](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a5852512b99910d8ff16b3e2635ef9dbc75af72e))
24
+
5
25
  ## [3.5.0-dev.15](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTconductor-v3.5.0-dev.14&targetVersion=GTconductor-v3.5.0-dev.15) (2026-11-01)
6
26
 
7
27
  ### Features
package/README.md CHANGED
@@ -132,7 +132,7 @@ The session manager owns the `claude --bg` sessions it launches, and only those:
132
132
  Then `claude --bg -n <name> --plugin-dir <home>/plugin --disallowedTools EnterPlanMode ExitPlanMode --permission-mode auto -- <prompt>` runs with its cwd in the worktree (see Plugin), never `--worktree`. Workers run headless. A machine whose `config.json` sets `"workers": { "tab": true }` also gets a tab attached to each session, `claude attach <session>`, in the terminal `workers.terminal` names (see Tabs); `conduct attach` opens one either way. A tab that fails to open is a `worker.tab-failed` event and never fails the launch.
133
133
  - **sweep:** every `sessions.pollSeconds` (10). Each `claude agents` listing launches `claude`, so the sweep lists on every pass only while a worker runs or a parked worker has a wait to deliver, and otherwise at most once a minute. A parked worker's compaction, and a session someone woke outside the daemon, are seen on that minute's listing (ATK-861).
134
134
  - **park:** a worker with a wait (`POST /waits`) is stopped once `claude agents` shows its turn has ended. Its status becomes `parked`, and its tab closes.
135
- - **long park:** once a worker has been parked `workers.stopProcessesAfterParkMinutes` (15; 0 turns it off) with none of its waits resolved, the daemon stops its worktree's own processes, such as a dev server it left up, with the retire's `stop processes` step and its rules (ATK-876; see retire). A Cadence `next dev` holds 0.4–2.5 GB, and most parks are short (Cadence's p50 is 2.3 min), so it waits for a long one rather than stopping a server on every park. It runs once per park, on the sweep's listing, which comes at most once a minute with no worker running, so up to a minute past the threshold. It is timed from the park, which a compaction's re-park starts again (a daemon restart, with no park seen, times it from the last stop and checks each long park once more). A listing that fails is tried again 5 minutes later, and a listing with a part it couldn't read is logged as a warning. A `worker.processes-stopped` event names each PID and command stopped (`stopped`) and any that wouldn't stop (`held`, with `error`); a check that finds none logs nothing. A process that wouldn't stop also raises a `failed` inbox item naming each PID and command, with the command that kills it (ATK-879), unless an open item gives those commands already (the same park checked again after a restart, or a half-done retire's item). It stands beside the worker's other failures and resolves when the worker resumes (an attach among them) or retires. A retire that stops part way raises its own item in its place, and one that is refused leaves it open. The worker stays parked on its waits and keeps its ports, so a server its work skill starts again serves on the same ones. The resume starts nothing. A worker whose wait has resolved is resumed instead, since its next turn may want the server. A parked worker is never attached: an attach resumes it first.
135
+ - **long park:** once a worker has been parked `workers.stopProcessesAfterParkMinutes` (15; 0 turns it off) with none of its waits resolved, the daemon stops its worktree's own processes, such as a dev server it left up, with the retire's `stop processes` step and its rules (ATK-876; see retire). A Cadence `next dev` holds 0.4–2.5 GB, and most parks are short (Cadence's p50 is 2.3 min), so it waits for a long one rather than stopping a server on every park. It runs once per park, on the sweep's listing, which comes at most once a minute with no worker running, so up to a minute past the threshold. It is timed from the park, which a compaction's re-park starts again (a daemon restart, with no park seen, times it from the last stop and checks each long park once more). A listing that fails is tried again 5 minutes later, and a listing with a part it couldn't read is logged as a warning. A `worker.processes-stopped` event names each PID and command stopped (`stopped`) and any that wouldn't stop (`held`, with `error`); a check that finds none logs nothing. A process that wouldn't stop also raises a `failed` inbox item naming each PID and command, with the command that kills it (ATK-879), unless an open item gives those commands already (a half-done retire's item). It stands beside the worker's other failures and resolves when the worker resumes (an attach among them) or retires, or when its processes have exited (ATK-880). Until the worker runs again or retires, through a compaction's re-park too, the daemon lists the worktree again every 5 minutes, stopping nothing. A held process has exited when its PID is gone, or, for one that runs from the worktree, when a complete listing no longer shows it (so a PID the OS gave to another process counts). One found only by its port or its parent needs its PID gone, since it can run unlisted. Those that exited are logged as `worker.processes-exited` (`exited`, with `held` for the rest): the park's items that name one resolve, and those still held are raised again on their own, so no kill command is left for a PID that may be reused. A listing that fails leaves it open. A daemon restart resolves it too, and the restart's own check of the park raises it again while the processes still run. A retire that stops part way raises its own item in its place, and one that is refused leaves it open. The worker stays parked on its waits and keeps its ports, so a server its work skill starts again serves on the same ones. The resume starts nothing. A worker whose wait has resolved is resumed instead, since its next turn may want the server. A parked worker is never attached: an attach resumes it first.
136
136
  - **resume:** when a wait resolves, the daemon lets the stop settle (`sessions.settleSeconds`). It checks the process has exited, then runs `claude --bg --resume <session> -- "[conductor] event: …"`. The session keeps its name, model, permission mode and disallowed tools. A resume of a session that still runs starts a copy; the daemon stops and removes the copy, then tries again. The listing shows a resumed session idle with its pid before its turn reads busy, so the worker isn't parked, and the event's waits aren't marked delivered, until its transcript has the model's reply after the resume (ATK-863). An attach delivers them too, and so does a session with no transcript to read. With no reply 10 minutes on and its turn over, it parks anyway with the event undelivered, so the next resume sends it again (`worker.resume-unanswered`, `resend: true`). A second unanswered resume is delivered (`resend: false`), and the worker parks on its other waits. A daemon restart forgets the resume, so a reply it hadn't seen yet gets the event once more.
137
137
  - **compact:** a parked worker with no resolved wait, whose context the rules find too big (the default `compact-on-park`: past `sessions.compactTokens`, 300k), is resumed with `/compact <what to keep>` once its stop has settled (`worker.compacting`). It runs until its transcript shows the compaction's boundary (`worker.compacted`, with the context before it and the conversation it kept), then parks again on its waits, which resume it as usual. Each turn of a session re-reads its whole context from cache, so a worker left to grow pays for it every turn (ATK-454 reached 883k). A resume that starts a copy is tried again on a later sweep (`worker.compact-deferred`), as a resume is. A compaction whose resume fails, or whose turn ends with no boundary 10 minutes on, logs `worker.compact-failed`, which raises a `context` item in the inbox. The worker still parks, and the daemon doesn't try it again until it restarts or the session compacts some other way: any boundary in its transcript, Claude Code's own included, logs `worker.compacted` and resolves that item. A worker whose context is unknown is never compacted, so even a rule with no threshold can't compact it on every park.
138
138
  - **retire:** refuses a worker whose turn still runs or that is attached (open in a tab), unless `--force`, and never retires a session that is still starting. A refusal for an attach is logged once per attach, however often the scheduler tries again, and never raised in the inbox; the retire goes through once the attach is released (ATK-519). What happens to the worktree depends on the worker's PR (design note v2, section 2):
@@ -0,0 +1,53 @@
1
+ // The daemon's synchronous calls that can hold its event loop (ATK-712): a git it runs to its end,
2
+ // a process start (spawn runs CreateProcess on the main thread, and Windows scans the image there),
3
+ // a store call (node:sqlite is synchronous). Each that takes MIN_MS or more is kept a while, so
4
+ // the loop monitor can say which of them ran in a gap it saw.
5
+ const MIN_MS = 50;
6
+ // About a gap's worth: a busy daemon makes few calls this slow.
7
+ const KEEP = 100;
8
+ const kept = [];
9
+ // Timed calls running now: only the outermost is kept, so a store transaction and the store calls
10
+ // in it count once.
11
+ let depth = 0;
12
+ // The calls that returned at or after `since` (a performance.now() time), longest first.
13
+ export function callsSince(since, limit = 5) {
14
+ return kept
15
+ .filter((call) => call.endedAt >= since)
16
+ .sort((a, b) => b.ms - a.ms)
17
+ .slice(0, limit)
18
+ .map(({ label, ms }) => ({ label, ms }));
19
+ }
20
+ // For tests: forget every call kept so far.
21
+ export function forgetCalls() {
22
+ kept.length = 0;
23
+ }
24
+ // Runs `work`, and keeps its label and time when it held the thread MIN_MS or more and no timed
25
+ // call encloses it.
26
+ export function timed(label, work) {
27
+ const start = performance.now();
28
+ depth++;
29
+ try {
30
+ return work();
31
+ }
32
+ finally {
33
+ depth--;
34
+ const endedAt = performance.now();
35
+ const ms = Math.round(endedAt - start);
36
+ if (depth === 0 && ms >= MIN_MS) {
37
+ kept.push({ endedAt, label, ms });
38
+ if (kept.length > KEEP)
39
+ kept.shift();
40
+ }
41
+ }
42
+ }
43
+ // Each method of `target` timed under `<prefix> <method>`: one place for an object whose every
44
+ // call is synchronous I/O, such as the store.
45
+ export function timedMethods(prefix, target) {
46
+ for (const [name, value] of Object.entries(target)) {
47
+ if (typeof value !== 'function')
48
+ continue;
49
+ Reflect.set(target, name, (...args) => timed(`${prefix} ${name}`, () => Reflect.apply(value, target, args)));
50
+ }
51
+ return target;
52
+ }
53
+ //# sourceMappingURL=blocking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocking.js","sourceRoot":"","sources":["../src/blocking.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,oGAAoG;AACpG,gGAAgG;AAChG,8DAA8D;AAY9D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,gEAAgE;AAChE,MAAM,IAAI,GAAG,GAAG,CAAC;AAEjB,MAAM,IAAI,GAAW,EAAE,CAAC;AACxB,kGAAkG;AAClG,oBAAoB;AACpB,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,CAAC;IACjD,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,gGAAgG;AAChG,oBAAoB;AACpB,MAAM,UAAU,KAAK,CAAI,KAAa,EAAE,IAAa;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,KAAK,EAAE,CAAC;IACR,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,8CAA8C;AAC9C,MAAM,UAAU,YAAY,CAAmB,MAAc,EAAE,MAAS;IACtE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,SAAS;QAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAW,EAAE,CACxD,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/build/inbox.js CHANGED
@@ -112,13 +112,14 @@ const checksData = z.looseObject({
112
112
  resolution: z.string(),
113
113
  worker: z.number(),
114
114
  });
115
+ const processData = z.looseObject({ command: z.string(), pid: z.number() });
115
116
  const workerData = z.looseObject({
116
117
  error: z.string().optional(),
117
- // The processes a long park couldn't stop (worker.processes-stopped, ATK-879).
118
- held: z
119
- .array(z.looseObject({ command: z.string(), pid: z.number() }))
120
- .optional()
121
- .catch(undefined),
118
+ // A long park's held processes that have exited (worker.processes-exited, ATK-880).
119
+ exited: z.array(processData).optional().catch(undefined),
120
+ // The processes a long park couldn't stop (worker.processes-stopped, ATK-879), or those of them
121
+ // still running (worker.processes-exited).
122
+ held: z.array(processData).optional().catch(undefined),
122
123
  // The worktree a retire kept, because its PR hadn't merged (worker.retired), and the repository it
123
124
  // belongs to: the project's clone, or for one made before clones the person's checkout.
124
125
  kept: z
@@ -556,6 +557,26 @@ export function inboxService({ onWaitResolved, store, tracker }) {
556
557
  return;
557
558
  raise({ commands, condition: null, item: event.subject, kind, links: [], project: event.project, text, worker });
558
559
  };
560
+ // A long park's processes that wouldn't stop, raised beside the worker's other failures, unless an
561
+ // open one gives these kill commands already, such as a half-done retire's item naming the same
562
+ // processes.
563
+ const raiseParkHeld = (held, minutes) => {
564
+ if (held.length === 0)
565
+ return;
566
+ const commands = held.map((p) => killCommand(p.pid));
567
+ if (openOf(worker, ['failed']).some((i) => commands.every((c) => i.commands.includes(c))))
568
+ return;
569
+ raise({
570
+ commands,
571
+ condition: null,
572
+ item: event.subject,
573
+ kind: 'failed',
574
+ links: [],
575
+ project: event.project,
576
+ text: `${parkHeldText(name, minutes)}${processesText(held)}. Stop them; it stays parked`,
577
+ worker,
578
+ });
579
+ };
559
580
  // A new launch of the same worker name answers an earlier one that failed, whether it ran or not.
560
581
  const earlierFailures = () => openOn(event.project, event.subject, ['failed']).filter((i) => i.worker !== null && i.worker !== worker && store.getWorker(i.worker)?.name === name);
561
582
  switch (event.kind) {
@@ -615,30 +636,27 @@ export function inboxService({ onWaitResolved, store, tracker }) {
615
636
  `conduct launch ${event.subject ?? name}${name.startsWith('probe-') ? ' --probe' : ''}`,
616
637
  ]);
617
638
  return;
618
- case 'worker.processes-stopped': {
619
- // A process a long park couldn't stop holds its memory through the wait (ATK-879). The worker
620
- // stays parked on its waits; its resume or retire resolves the item, and a retire that stops
621
- // part way raises its own in its place (scheduler.ts). Raised beside the worker's other
622
- // failures, unless an open one gives these kill commands already: a restart's check of the
623
- // same park, or a half-done retire's item naming the same processes.
624
- const { held = [], minutes } = data.data;
625
- if (held.length === 0)
626
- return;
627
- const commands = held.map((p) => killCommand(p.pid));
628
- if (openOf(worker, ['failed']).some((i) => commands.every((c) => i.commands.includes(c))))
639
+ case 'worker.processes-exited': {
640
+ // Some of a long park's held processes have exited (ATK-880). The park's items that name one
641
+ // resolve, and those still held are raised again on their own, so no kill command is left for
642
+ // a PID the OS may give to another process. Only the park's items: a half-done retire's item
643
+ // naming the same processes is the scheduler's, which its retry resolves.
644
+ const { exited = [], held = [], minutes } = data.data;
645
+ const gone = new Set(exited.map((p) => killCommand(p.pid)));
646
+ const items = openOf(worker, ['failed']).filter((i) => isParkHeld(i) && i.commands.some((c) => gone.has(c)));
647
+ if (items.length === 0)
629
648
  return;
630
- raise({
631
- commands,
632
- condition: null,
633
- item: event.subject,
634
- kind: 'failed',
635
- links: [],
636
- project: event.project,
637
- text: `${parkHeldText(name, minutes)}${processesText(held)}. Stop them; it stays parked`,
638
- worker,
639
- });
649
+ resolveAll(items, `${name}'s held processes exited: ${exited.map((p) => p.pid).join(', ')}`);
650
+ raiseParkHeld(held, minutes);
640
651
  return;
641
652
  }
653
+ case 'worker.processes-stopped':
654
+ // A process a long park couldn't stop holds its memory through the wait (ATK-879). The worker
655
+ // stays parked on its waits; its resume or retire resolves the item, as do the processes
656
+ // exiting (worker.processes-exited, ATK-880), and a retire that stops part way raises its own
657
+ // in its place (scheduler.ts).
658
+ raiseParkHeld(data.data.held ?? [], data.data.minutes);
659
+ return;
642
660
  case 'worker.resumed':
643
661
  case 'worker.revived':
644
662
  case 'worker.running-again':
@@ -829,10 +847,16 @@ export function inboxService({ onWaitResolved, store, tracker }) {
829
847
  raise,
830
848
  resolve,
831
849
  // Session clocks, conflict and login spells were in memory, and the rules were read again at
832
- // start (a file still refused raises its item again), so the items of all four start over.
850
+ // start (a file still refused raises its item again), so the items of all four start over. So
851
+ // does a long park's held processes: the check that would see them exit was in memory, and the
852
+ // restart checks each long park again, which raises the item again while they still run (ATK-880).
833
853
  start: () => resolveAll(store
834
854
  .openInbox()
835
- .filter((i) => SESSION_KINDS.includes(i.kind) || i.kind === 'conflict' || i.kind === 'login' || isRulesItem(i)), 'the daemon restarted; raised again if it persists'),
855
+ .filter((i) => SESSION_KINDS.includes(i.kind) ||
856
+ i.kind === 'conflict' ||
857
+ i.kind === 'login' ||
858
+ isRulesItem(i) ||
859
+ isParkHeld(i)), 'the daemon restarted; raised again if it persists'),
836
860
  };
837
861
  }
838
862
  // A failure about processes a long park couldn't stop (onWorker raises them, ATK-879).
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAON,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA+CnD,oGAAoG;AACpG,cAAc;AACd,MAAM,UAAU,GAAmE;IACjF,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,+FAA+F;AAC/F,kGAAkG;AAClG,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAA2B,IAAI,GAAG,CAAC;IAChE,WAAW;IACX,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,6FAA6F;AAC7F,mGAAmG;AACnG,0FAA0F;AAC1F,MAAM,aAAa,GAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEhG,kGAAkG;AAClG,iGAAiG;AACjG,MAAM,WAAW,GAAkD;IACjE,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzF,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC;AAEF,wFAAwF;AACxF,MAAM,IAAI,GAAG,QAAQ,CAAC;AACtB,4FAA4F;AAC5F,MAAM,OAAO,GAAG,mEAAmE,CAAC;AACpF,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,iFAAiF;AACjF,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,mEAAmE;AACnE,MAAM,aAAa,GAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAEpE,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;IAC7B,kEAAkE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,qEAAqE;IACrE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1G,6FAA6F;AAC7F,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;IAC7B,+DAA+D;IAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,0EAA0E;IAC1E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACvG;IACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE5E,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,oFAAoF;IACpF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACxD,gGAAgG;IAChG,2CAA2C;IAC3C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACtD,mGAAmG;IACnG,wFAAwF;IACxF,IAAI,EAAE,CAAC;SACJ,WAAW,CAAC;QACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACtC,qEAAqE;QACrE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;SACD,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,iFAAiF;IACjF,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACtD,4EAA4E;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,4DAA4D;IAC5D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAS;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACvE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,UAAU,CAAC;IAC9C,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,OAAO,GAAG,EAAE,UAAU,CAAC;IACtF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,KAA2B,EAAE,GAAS;IAC/D,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;QAC7I,OAAO,CAAC,CAAC,IAAI,EAAE;QACf,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAED,sGAAsG;AACtG,kGAAkG;AAClG,gGAAgG;AAChG,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAa;IACxE,yDAAyD;IACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAa,EAAE,CAC/C,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC,WAAW,CAAC;YAChB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;YACD,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,EAAU,EAAoB,EAAE,CAChE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,WAAW,CAAC;gBAChB,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBACvF,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,CAAC,OAAsB,EAAE,IAAmB,EAAE,KAA4B,EAAe,EAAE,CACxG,KAAK;SACF,SAAS,EAAE;SACX,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,OAAO,KAAK,OAAO;QACrB,CAAC,CAAC,IAAI,KAAK,IAAI;QACf,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,WAAW,EAAE;QAC5C,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACrC,CAAC;IAEN,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,KAA2B,EAAe,EAAE,CAC1E,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjF,MAAM,eAAe,GAAG,CAAC,MAAc,EAAe,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE9G,MAAM,UAAU,GAAG,CAAC,KAA2B,EAAE,EAAU,EAAQ,EAAE;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAsB,EAAkB,EAAE,CAC3D,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;IAExE,8FAA8F;IAC9F,qDAAqD;IACrD,MAAM,eAAe,GAAG,CAAC,OAAuB,EAAE,GAAW,EAAE,MAA4B,EAAU,EAAE;QACrG,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,YAAY,GAAG,KAAK,MAAM,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK;aAChB,SAAS,EAAE;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;aACxC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,cAAc,EAAE,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,EACJ,WAAW,EACX,QAAQ,GAAG,EAAE,EACb,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,KAAK,GAAG,EAAE,EACV,KAAK,EACL,GAAG,GAAG,IAAI,EACV,MAAM,GAAG,IAAI,GACd,GAAG,IAAI,CAAC,IAAI,CAAC;QACd,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,2FAA2F;QAC3F,4BAA4B;QAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;gBACxF,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChG,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,6FAA6F;QAC7F,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,UAAU,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;QAC7B,uEAAuE;QACvE,IAAI,IAAI,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC;YACnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC7C,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI;YAC/F,IAAI,EAAE,GAAG;YACT,IAAI;YACJ,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,MAAM,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC/E,MAAM;SACP,CAAC,CAAC;QACH,gGAAgG;QAChG,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5D,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtE,OAAO,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAEF,qFAAqF;IACrF,kGAAkG;IAClG,4CAA4C;IAC5C,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAChD,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5E,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,YAAY,CAChB,IAAI,CAAC,EAAE,EACP,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,IAAI,SAAS,MAAM,oBAAoB,CACtF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9C,2FAA2F;QAC3F,UAAU,CACR,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACxD,cAAc,IAAI,EAAE,CACrB,CAAC;QACF,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,iGAAiG;QACjG,MAAM,KAAK,GAAG,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/D,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;gBACtC,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;aAC/B,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnH,CAAC;aAAM,IAAI,SAAS,EAAE,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACjE,kFAAkF;YAClF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACnE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;oBAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;YACxF,4FAA4F;YAC5F,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;gBACvE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;oBAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,0FAA0F;IAC1F,8BAA8B;IAC9B,MAAM,IAAI,GAAG,CACX,OAAsB,EACtB,IAAY,EACZ,IAAe,EACf,SAAiB,EACjB,MAAc,EACd,KAA8D,EACxD,EAAE;QACR,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,+FAA+F;YAC/F,yFAAyF;YACzF,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC;gBAAE,OAAO;YAC1F,wFAAwF;YACxF,uFAAuF;YACvF,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,IAAI,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,IAAI,CAAC,QAAQ;oBAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YACD,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,kGAAkG;QAClG,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO;gBAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtG,CAAC,CAAC;IAEF,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,CAAC,OAAsB,EAAE,IAAmB,EAAE,EAAU,EAAe,EAAE,CACxF,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,IAAmB,EAAE,EAAU,EAAe,EAAE,CAChG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACxG,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,OAAsB,EAAE,IAAmB,EAAE,EAAU,EAAoB,EAAE;QAC9F,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK;aACjB,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAChC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACV,OAAO,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC;IAEF,kGAAkG;IAClG,gGAAgG;IAChG,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAE,IAAY,EAAE,UAAkB,EAAE,MAAc,EAAE,IAAa,EAAQ,EAAE;QAC9G,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI,YAAY,iCAAiC,CAAC;QAC/H,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO;QACtF,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;YAC9D,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACrF,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,+FAA+F;YAC/F,8FAA8F;YAC9F,yEAAyE;YACzE,UAAU,CACR,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,EACvF,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,UAAU,CACR,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,EAC3G,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,IAAI,KAAK,IAAI,IAAI,8CAA8C,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACvG,2FAA2F;YAC3F,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,UAAU,CACR,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EACtG,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAC3E,wDAAwD;YACxD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAC/E,KAAK,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,6FAA6F;IAC7F,iGAAiG;IACjG,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAQ,EAAE;QACrD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACxE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,SAAS,EAAE,IAAI,KAAK,IAAI;YAAE,OAAO;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1D,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;QACvG,UAAU,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;QAC3C,oFAAoF;QACpF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9G,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;YAC9D,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,WAAW,CAAC;gBACjB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAC3F;gBACD,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aAChC,CAAC;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,MAAM,mBAAmB,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,EAAE;YAClJ,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,mGAAmG;IACnG,kGAAkG;IAClG,4CAA4C;IAC5C,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAQ,EAAE;QACjD,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACpF,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK;aACf,SAAS,EAAE;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;QAC5F,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI,yBAAyB,CAAC;QACxG,KAAK,CAAC;YACJ,QAAQ,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACpC,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,SAAS,EAAE,wBAAwB,IAAI,QAAQ,OAAO,IAAI,GAAG,SAAS,KAAK,EAAE;YAC3G,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,gGAAgG;IAChG,wIAAwI;IACxI,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3F,MAAM,GAAG,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QACxG,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,oBAAoB,CAAC,CAAC;YACrF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC;YACnB,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAChH,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,qGAAqG;IACrG,+FAA+F;IAC/F,2BAA2B;IAC3B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAe,EAAE,CAC9C,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/E,gGAAgG;IAChG,6FAA6F;IAC7F,MAAM,WAAW,GAAG,CAAC,OAAe,EAAe,EAAE,CACnD,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9G,MAAM,OAAO,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACnD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnG,UAAU,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7C,KAAK,CAAC;YACJ,QAAQ,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACtE,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,GAAG,IAAI,oBAAoB,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,gGAAgG,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE;YAClQ,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,kBAAkB,IAAI,EAAE,CAAC;QACxC,gGAAgG;QAChG,2FAA2F;QAC3F,MAAM,GAAG,GAAG,CAAC,IAAe,EAAE,IAAY,EAAE,QAAkB,EAAQ,EAAE;YACtE,IACE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACrF;gBAED,OAAO;YACT,KAAK,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnH,CAAC,CAAC;QACF,mGAAmG;QACnG,gGAAgG;QAChG,aAAa;QACb,MAAM,aAAa,GAAG,CAAC,IAA4B,EAAE,OAA2B,EAAQ,EAAE;YACxF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO;YAClG,KAAK,CAAC;gBACJ,QAAQ;gBACR,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,KAAK,CAAC,OAAO;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,8BAA8B;gBACxF,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC;QACF,kGAAkG;QAClG,MAAM,eAAe,GAAG,GAAgB,EAAE,CACxC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,IAAI,CAC5F,CAAC;QACJ,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAiB;gBACpB,uEAAuE;gBACvE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;oBAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;gBAC9G,OAAO;YACT,KAAK,uBAAuB;gBAC1B,mGAAmG;gBACnG,6EAA6E;gBAC7E,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO;gBAC/C,KAAK,CAAC;oBACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;oBAC5C,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,KAAK,CAAC,OAAO;oBACnB,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,GAAG,IAAI,iBAAiB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,0CAA0C;oBACzK,MAAM;iBACP,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,kBAAkB;gBACrB,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;gBACzD,OAAO;YACT,KAAK,sBAAsB;gBACzB,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,yBAAyB,CAAC,CAAC;gBAChE,GAAG,CACD,QAAQ,EACR,GAAG,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,EAAE,EAChG,CAAC,kBAAkB,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1F,CAAC;gBACF,OAAO;YACT,KAAK,iBAAiB;gBACpB,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;gBACxD,OAAO;YACT,KAAK,oBAAoB;gBACvB,4FAA4F;gBAC5F,sCAAsC;gBACtC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;oBAAE,OAAO;gBACxD,KAAK,CAAC;oBACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;oBAC5C,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,KAAK,CAAC,OAAO;oBACnB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,GAAG,IAAI,qBAAqB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,oCAAoC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,MAAM;oBACzI,MAAM;iBACP,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,eAAe;gBAClB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;gBAC5D,OAAO;YACT,KAAK,uBAAuB;gBAC1B,GAAG,CACD,QAAQ,EACR,GAAG,IAAI,4DAA4D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,6EAA6E,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,mBAAmB,6EAA6E,EAC5R;oBACE,kBAAkB,IAAI,EAAE;oBACxB,kBAAkB,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;iBACxF,CACF,CAAC;gBACF,OAAO;YACT,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,6FAA6F;gBAC7F,8FAA8F;gBAC9F,6FAA6F;gBAC7F,0EAA0E;gBAC1E,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAC/B,UAAU,CAAC,KAAK,EAAE,GAAG,IAAI,6BAA6B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7F,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,KAAK,0BAA0B;gBAC7B,8FAA8F;gBAC9F,yFAAyF;gBACzF,8FAA8F;gBAC9F,+BAA+B;gBAC/B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvD,OAAO;YACT,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC;YACtB,KAAK,sBAAsB;gBACzB,6FAA6F;gBAC7F,gGAAgG;gBAChG,UAAU,CACR,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACnE,EACD,GAAG,IAAI,gBAAgB,CACxB,CAAC;gBACF,OAAO;YACT,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,UAAU,CACR,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EACpD,GAAG,IAAI,UAAU,CAClB,CAAC;gBACF,0FAA0F;gBAC1F,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;oBACpC,UAAU,CACR,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EACrE,GAAG,IAAI,UAAU,CAClB,CAAC;gBACJ,CAAC;gBACD,uFAAuF;gBACvF,2FAA2F;gBAC3F,yFAAyF;gBACzF,2FAA2F;gBAC3F,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;oBAC5F,KAAK,CAAC;wBACJ,QAAQ,EAAE,IAAI;4BACZ,CAAC,CAAC;gCACE,sFAAsF,IAAI,CAAC,QAAQ,GAAG;gCACtG,WAAW,IAAI,kBAAkB;gCACjC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;6BACtE;4BACH,CAAC,CAAC,EAAE;wBACN,SAAS,EAAE,IAAI;wBACf,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,EAAE;wBACT,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,GAAG,IAAI,uCAAuC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,8CAA8C;wBAChL,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,gBAAgB;gBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;oBAAE,OAAO,CAAC,kBAAkB;gBACvF,KAAK,CAAC;oBACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;oBAC5C,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,KAAK,CAAC,OAAO;oBACnB,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,GAAG,IAAI,aAAa,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3M,MAAM;iBACP,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,sBAAsB;gBACzB,UAAU,CACR,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACzG,GAAG,IAAI,WAAW,CACnB,CAAC;gBACF,OAAO;YACT,KAAK,gBAAgB;gBACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,GAAG,CACD,YAAY,EACZ,IAAI,CAAC,IAAI,CAAC,OAAO;wBACf,CAAC,CAAC,GAAG,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,gCAAgC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;wBACpH,CAAC,CAAC,GAAG,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,gCAAgC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,EACpH,CAAC,MAAM,CAAC,CACT,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/F,CAAC;gBACD,OAAO;YACT,KAAK,6BAA6B;gBAChC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;gBAC7D,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,iCAAiC,EAAE,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5F,OAAO;QACX,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,cAAc,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;gBAC1B,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,yBAAyB,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,CAAC;YAC/F,gGAAgG;YAChG,gCAAgC;YAChC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;YACzG,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;gBAChC,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAChH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,IAAI;wBAChB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;4BACtB,CAAC,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE;4BAC3C,CAAC,CAAC,EAAE,CAAC;oBACX,MAAM,IAAI,cAAc,CACtB,cAAc,EAAE,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,qHAAqH,EAC5J,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CACvC,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,OAA2C,CAAC;gBAChD,IAAI,CAAC;oBACH,2FAA2F;oBAC3F,0EAA0E;oBAC1E,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5E,CAAC;wBAAS,CAAC;oBACT,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM,EAAE,GAAG,wCAAwC,OAAO,CAAC,EAAE,GAAG,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,IAAI,iDAAiD,EAAE;oBAC1G,kBAAkB,EAAE,gBAAgB;iBACrC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9G,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,OAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,qGAAqG;gBACrG,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;YACD,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,aAAa,OAAO,CAAC,EAAE,GAAG,CAAC;gBACnF,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC;YACP,iFAAiF;YACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1F,CAAC;QAED,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,OAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,+FAA+F;gBAC/F,wDAAwD;gBACxD,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAC7B,GAAG,EACH,kDAAkD,IAAI,YAAY,EAClE,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/G,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxF,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChD,KAAK,CAAC;wBACJ,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;wBAC3B,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;wBACrC,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,EAAE;wBACT,OAAO;wBACP,IAAI,EAAE,GAAG,GAAG,wDAAwD,OAAO,GAAG;wBAC9E,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,MAAM;qBAClC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,KAAK,CAAC,WAAW,CAAC;gBAChB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBACrD,IAAI,EAAE,oBAAoB;gBAC1B,OAAO;gBACP,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QACtE,CAAC;QAED,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,WAAW,CAAC,KAAK,CAAC,CAAC;iBACpD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,cAAc,CAAC,KAAK,CAAC,CAAC;iBAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;iBAC5F,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBAAE,cAAc,CAAC,KAAK,CAAC,CAAC;iBAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACtD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;iBACrF,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;iBAClG,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;QAE7B,KAAK;QAEL,OAAO;QAEP,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,mGAAmG;QACnG,KAAK,EAAE,GAAG,EAAE,CACV,UAAU,CACR,KAAK;aACF,SAAS,EAAE;aACX,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,KAAK,UAAU;YACrB,CAAC,CAAC,IAAI,KAAK,OAAO;YAClB,WAAW,CAAC,CAAC,CAAC;YACd,UAAU,CAAC,CAAC,CAAC,CAChB,EACH,mDAAmD,CACpD;KACJ,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,4EAA4E,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7F,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,IAAsC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAChH,OAAO,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AACzF,CAAC;AAED,kGAAkG;AAClG,mGAAmG;AACnG,qEAAqE;AACrE,SAAS,cAAc,CAAC,IAAe;IACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;AAClF,CAAC;AAED,wGAAwG;AACxG,SAAS,cAAc,CAAC,SAA2B;IACjD,OAAO,SAAS,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;AAC3G,CAAC;AAED,2EAA2E;AAC3E,SAAS,UAAU,CAAC,OAAuB,EAAE,IAAY;IACvD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,GAAG,IAAI,2BAA2B,CAAC;AAC5C,CAAC;AAED,qGAAqG;AACrG,SAAS,eAAe,CAAC,IAAe;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACjG,CAAC;AAED,gGAAgG;AAChG,gGAAgG;AAChG,SAAS,gBAAgB,CAAC,IAAe;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CAAC,IAAe;IACjC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,IAAe;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,4DAA4D;AAC5D,SAAS,WAAW,CAAC,IAAe;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC;AAC5F,CAAC;AAED,sGAAsG;AACtG,mEAAmE;AACnE,SAAS,UAAU,CAAC,IAAe,EAAE,EAAU;IAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,qGAAqG;AACrG,QAAQ;AACR,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,+FAA+F;AAC/F,SAAS,YAAY,CAAC,IAAY,EAAE,OAA2B;IAC7D,OAAO,GAAG,IAAI,oBAAoB,OAAO,IAAI,GAAG,oDAAoD,CAAC;AACvG,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,CAAC,mBAAmB,IAAI,EAAE,EAAE,kBAAkB,IAAI,qBAAqB,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,GAAG,IAAI,gCAAgC,CAAC;AACjD,CAAC;AAED,oGAAoG;AACpG,SAAS,SAAS,CAAC,KAAwB;IACzC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,0DAA0D;AAC1D,SAAS,IAAI,CAAC,SAAiB;IAC7B,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC"}
package/build/loop-lag.js CHANGED
@@ -1,19 +1,41 @@
1
- export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, now = () => new Date(), thresholdMs = 2000, }) {
1
+ import { cpus, freemem } from 'node:os';
2
+ import { Worker } from 'node:worker_threads';
3
+ import { callsSince } from "./blocking.js";
4
+ // Runs in the worker: element 0 holds its worst lateness since the main thread last took it, and
5
+ // element 1 its last tick (clockMs), which says how late it is now even before it ticks again; 0
6
+ // until its first tick, so a worker slow to boot isn't counted late.
7
+ const OFF_THREAD_SCRIPT = `
8
+ const { workerData } = require('node:worker_threads');
9
+ const { intervalMs, shared } = workerData;
10
+ const clockMs = () => Math.round(performance.timeOrigin + performance.now());
11
+ let expected = performance.now() + intervalMs;
12
+ setInterval(() => {
13
+ const now = performance.now();
14
+ const late = BigInt(Math.max(0, Math.round(now - expected)));
15
+ expected = now + intervalMs;
16
+ Atomics.store(shared, 1, BigInt(clockMs()));
17
+ if (late > Atomics.load(shared, 0)) Atomics.store(shared, 0, late);
18
+ }, intervalMs);
19
+ `;
20
+ export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, now = () => new Date(), offThread = offThreadTimer, thresholdMs = 2000, }) {
2
21
  let timer;
22
+ let other = null;
3
23
  let stats = { blocked: 0, last: null, maxLateMs: 0, since: null };
4
24
  let expected = 0;
5
- let cpu = process.cpuUsage();
25
+ let before = snapshot();
6
26
  const tick = () => {
7
27
  const lateMs = Math.max(0, Math.round(performance.now() - expected));
8
- const used = process.cpuUsage(cpu);
9
- cpu = process.cpuUsage();
28
+ const after = snapshot();
29
+ const gap = { after, before };
30
+ before = after;
10
31
  expected = performance.now() + intervalMs;
32
+ const offThreadLateMs = other?.take() ?? null;
11
33
  stats.maxLateMs = Math.max(stats.maxLateMs, lateMs);
12
34
  if (lateMs < thresholdMs)
13
35
  return;
14
- const block = { at: now().toISOString(), cpuMs: Math.round((used.user + used.system) / 1000), lateMs };
36
+ const data = gapOf(gap, lateMs, offThreadLateMs);
15
37
  stats.blocked++;
16
- stats.last = block;
38
+ stats.last = { at: now().toISOString(), ...data };
17
39
  let running;
18
40
  try {
19
41
  running = context();
@@ -21,23 +43,89 @@ export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, no
21
43
  catch (error) {
22
44
  running = { contextError: String(error) };
23
45
  }
24
- log.log('warn', 'the event loop was blocked', { cpuMs: block.cpuMs, lateMs, ...running });
46
+ log.log('warn', 'the event loop was blocked', { ...data, ...running });
25
47
  };
26
48
  return {
27
49
  start: () => {
28
50
  if (timer)
29
51
  return;
30
52
  stats = { blocked: 0, last: null, maxLateMs: 0, since: now().toISOString() };
31
- cpu = process.cpuUsage();
53
+ before = snapshot();
32
54
  expected = performance.now() + intervalMs;
55
+ other = offThread(intervalMs);
33
56
  timer = setInterval(tick, intervalMs);
34
57
  timer.unref();
35
58
  },
36
- stats: () => ({ ...stats, last: stats.last && { ...stats.last } }),
59
+ stats: () => ({ ...stats, last: stats.last && structuredClone(stats.last) }),
37
60
  stop: () => {
38
61
  clearInterval(timer);
39
62
  timer = undefined;
63
+ other?.stop();
64
+ other = null;
40
65
  },
41
66
  };
42
67
  }
68
+ // A worker thread with a timer of its own; null when it can't start.
69
+ export function offThreadTimer(intervalMs) {
70
+ const shared = new BigInt64Array(new SharedArrayBuffer(16));
71
+ let worker;
72
+ try {
73
+ worker = new Worker(OFF_THREAD_SCRIPT, { eval: true, workerData: { intervalMs, shared } });
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ // A worker that died ticks no more: its time since a tick would read as a process that never ran.
79
+ let running = true;
80
+ worker.on('error', () => (running = false));
81
+ worker.on('exit', () => (running = false));
82
+ worker.unref();
83
+ return {
84
+ stop: () => {
85
+ running = false;
86
+ void worker.terminate();
87
+ },
88
+ take: () => {
89
+ if (!running)
90
+ return null;
91
+ const lastTick = Number(Atomics.load(shared, 1));
92
+ const sinceTick = lastTick === 0 ? 0 : clockMs() - lastTick - intervalMs;
93
+ const worst = Number(Atomics.exchange(shared, 0, 0n));
94
+ return Math.max(0, worst, sinceTick);
95
+ },
96
+ };
97
+ }
98
+ // Monotonic milliseconds that every thread reads alike: Date.now() jumps with a clock change.
99
+ function clockMs() {
100
+ return Math.round(performance.timeOrigin + performance.now());
101
+ }
102
+ function gapOf({ after, before }, lateMs, offThreadLateMs) {
103
+ const cpuMicros = after.cpu.user - before.cpu.user + (after.cpu.system - before.cpu.system);
104
+ const total = after.machine.total - before.machine.total;
105
+ const idle = after.machine.idle - before.machine.idle;
106
+ return {
107
+ cpuMs: Math.round(cpuMicros / 1000),
108
+ faults: after.usage.majorPageFault -
109
+ before.usage.majorPageFault +
110
+ (after.usage.minorPageFault - before.usage.minorPageFault),
111
+ fsReads: after.usage.fsRead - before.usage.fsRead,
112
+ fsWrites: after.usage.fsWrite - before.usage.fsWrite,
113
+ lateMs,
114
+ machine: {
115
+ busyPct: total > 0 ? Math.round((1 - idle / total) * 100) : 0,
116
+ freeMb: Math.round(freemem() / 1024 / 1024),
117
+ },
118
+ offThreadLateMs,
119
+ ops: callsSince(before.tick),
120
+ };
121
+ }
122
+ function snapshot() {
123
+ let idle = 0;
124
+ let total = 0;
125
+ for (const { times } of cpus()) {
126
+ idle += times.idle;
127
+ total += times.idle + times.irq + times.nice + times.sys + times.user;
128
+ }
129
+ return { cpu: process.cpuUsage(), machine: { idle, total }, tick: performance.now(), usage: process.resourceUsage() };
130
+ }
43
131
  //# sourceMappingURL=loop-lag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-lag.js","sourceRoot":"","sources":["../src/loop-lag.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACpB,UAAU,GAAG,GAAG,EAChB,GAAG,EACH,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACtB,WAAW,GAAG,IAAI,GAQnB;IACC,IAAI,KAAiC,CAAC;IACtC,IAAI,KAAK,GAAc,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAC1C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,MAAM,GAAG,WAAW;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QACvG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,OAAO,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,KAAK;gBAAE,OAAO;YAClB,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7E,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YAC1C,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAClE,IAAI,EAAE,GAAG,EAAE;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loop-lag.js","sourceRoot":"","sources":["../src/loop-lag.ts"],"names":[],"mappings":"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"}