instar 1.3.410 → 1.3.411
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/dist/monitoring/SessionWatchdog.d.ts +1 -1
- package/dist/monitoring/SessionWatchdog.d.ts.map +1 -1
- package/dist/monitoring/SessionWatchdog.js +55 -25
- package/dist/monitoring/SessionWatchdog.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/{1.3.410.md → 1.3.411.md} +34 -0
- package/upgrades/side-effects/watchdog-nonblocking-scans.md +81 -0
|
@@ -142,7 +142,7 @@ export declare class SessionWatchdog extends EventEmitter {
|
|
|
142
142
|
* 5. server.ts checks message history before activating triage (data-level guard)
|
|
143
143
|
* 6. TriageOrchestrator Pattern 2b re-validates before reinjecting (redundant check)
|
|
144
144
|
*/
|
|
145
|
-
checkCompactionIdle(tmuxSession: string): void
|
|
145
|
+
checkCompactionIdle(tmuxSession: string): Promise<void>;
|
|
146
146
|
private handleEscalation;
|
|
147
147
|
/**
|
|
148
148
|
* LLM gate: Before entering escalation, ask whether the command is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionWatchdog.d.ts","sourceRoot":"","sources":["../../src/monitoring/SessionWatchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"SessionWatchdog.d.ts","sourceRoot":"","sources":["../../src/monitoring/SessionWatchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,15 +12,42 @@
|
|
|
12
12
|
* Level 3: SIGKILL the stuck child PID
|
|
13
13
|
* Level 4: Kill tmux session
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { execFile } from 'node:child_process';
|
|
16
|
+
import { promisify } from 'node:util';
|
|
16
17
|
import { EventEmitter } from 'node:events';
|
|
17
18
|
import fs from 'node:fs';
|
|
18
19
|
import path from 'node:path';
|
|
19
20
|
import { maybeRotateJsonl } from '../utils/jsonl-rotation.js';
|
|
20
21
|
import { evaluateThrottleSettle, RATE_LIMIT_SETTLED_CAPTURE_LINES, RATE_LIMIT_DEFAULT_SETTLE_MS, } from './rateLimitDetection.js';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const execFileAsync = promisify(execFile);
|
|
23
|
+
/**
|
|
24
|
+
* ASYNC shell exec — the watchdog poll runs every 30s over EVERY running
|
|
25
|
+
* session, several `ps`/`pgrep` probes each. With the old `spawnSync` those
|
|
26
|
+
* probes blocked the single Node event loop for the full duration of each
|
|
27
|
+
* subprocess; under load (dozens of sessions, a busy box) the cumulative stall
|
|
28
|
+
* made the server miss its own /health window → false "server temporarily down"
|
|
29
|
+
* + a restart loop (2026-06-07 incident). execFile is non-blocking: the event
|
|
30
|
+
* loop (and /health) stays responsive while `ps` runs. Returns captured stdout
|
|
31
|
+
* (or '' on a non-zero exit / timeout), matching the old spawnSync semantics
|
|
32
|
+
* where a pgrep/egrep no-match simply yielded ''.
|
|
33
|
+
*/
|
|
34
|
+
async function shellExecAsync(cmd, timeout = 5000) {
|
|
35
|
+
try {
|
|
36
|
+
const { stdout } = await execFileAsync('/bin/sh', ['-c', cmd], {
|
|
37
|
+
encoding: 'utf-8',
|
|
38
|
+
timeout,
|
|
39
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
40
|
+
});
|
|
41
|
+
return stdout ?? '';
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
// @silent-fallback-ok — a failed process probe is not a degradation: a
|
|
45
|
+
// pgrep/egrep no-match, a dead PID, or a timeout legitimately means "no
|
|
46
|
+
// match", identical to the prior synchronous behavior where spawnSync simply
|
|
47
|
+
// yielded an empty stdout string. Return any captured stdout, else ''.
|
|
48
|
+
const e = err;
|
|
49
|
+
return e && typeof e.stdout === 'string' ? e.stdout : '';
|
|
50
|
+
}
|
|
24
51
|
}
|
|
25
52
|
import { createRequire } from 'node:module';
|
|
26
53
|
// ESM module: a bare CJS `require` is undefined and throws at runtime. Bind a
|
|
@@ -203,6 +230,9 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
203
230
|
catch (err) {
|
|
204
231
|
console.error(`[Watchdog] Error checking "${session.tmuxSession}":`, err);
|
|
205
232
|
}
|
|
233
|
+
// Yield to the event loop between sessions so a poll over many sessions
|
|
234
|
+
// can never monopolize the loop and starve /health (which shares it).
|
|
235
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
206
236
|
}
|
|
207
237
|
}
|
|
208
238
|
finally {
|
|
@@ -219,12 +249,12 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
219
249
|
// the stuck-command path but still run compaction-idle detection —
|
|
220
250
|
// that path is output-based and doesn't strictly need a PID (its own
|
|
221
251
|
// process guard is null-safe).
|
|
222
|
-
const claudePid = this.getClaudePid(tmuxSession);
|
|
252
|
+
const claudePid = await this.getClaudePid(tmuxSession);
|
|
223
253
|
if (!claudePid) {
|
|
224
|
-
this.checkCompactionIdle(tmuxSession);
|
|
254
|
+
await this.checkCompactionIdle(tmuxSession);
|
|
225
255
|
return;
|
|
226
256
|
}
|
|
227
|
-
const children = this.getChildProcesses(claudePid);
|
|
257
|
+
const children = await this.getChildProcesses(claudePid);
|
|
228
258
|
const stuckChild = children.find(c => {
|
|
229
259
|
if (this.isExcluded(c.command))
|
|
230
260
|
return false;
|
|
@@ -245,7 +275,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
245
275
|
// contain active sibling producers, the "stuck" process is just
|
|
246
276
|
// waiting for upstream output from a legitimate long-running
|
|
247
277
|
// pipeline. Skip escalation.
|
|
248
|
-
if (this.hasActivePipelineSibling(stuckChild.pid, stuckChild.command)) {
|
|
278
|
+
if (await this.hasActivePipelineSibling(stuckChild.pid, stuckChild.command)) {
|
|
249
279
|
console.log(`[Watchdog] "${tmuxSession}": ${stuckChild.command.slice(0, 60)} ` +
|
|
250
280
|
`is consuming an active pipeline — skipping escalation`);
|
|
251
281
|
this.temporaryExclusions.add(stuckChild.pid);
|
|
@@ -299,7 +329,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
299
329
|
// sitting at a bare prompt with no one at the terminal to nudge them.
|
|
300
330
|
// This is the polling-based fallback for the PreCompact event path which
|
|
301
331
|
// is unreliable (Claude Code doesn't always fire the event).
|
|
302
|
-
this.checkCompactionIdle(tmuxSession);
|
|
332
|
+
await this.checkCompactionIdle(tmuxSession);
|
|
303
333
|
// Server-side throttle detection — catch sessions stopped at a prompt after
|
|
304
334
|
// Anthropic's "temporarily limiting requests" throttle exhausted Claude's
|
|
305
335
|
// own retries. Signal-only: emits 'rate-limited' for the RateLimitSentinel
|
|
@@ -369,7 +399,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
369
399
|
* 5. server.ts checks message history before activating triage (data-level guard)
|
|
370
400
|
* 6. TriageOrchestrator Pattern 2b re-validates before reinjecting (redundant check)
|
|
371
401
|
*/
|
|
372
|
-
checkCompactionIdle(tmuxSession) {
|
|
402
|
+
async checkCompactionIdle(tmuxSession) {
|
|
373
403
|
// Cooldown — don't re-emit for the same session within 5 minutes
|
|
374
404
|
const lastEmitted = this.compactionIdleCooldowns.get(tmuxSession);
|
|
375
405
|
if (lastEmitted && (Date.now() - lastEmitted) < SessionWatchdog.COMPACTION_IDLE_COOLDOWN_MS) {
|
|
@@ -377,9 +407,9 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
377
407
|
}
|
|
378
408
|
// Guard 1: Structural process check — if Claude has active child processes,
|
|
379
409
|
// it's executing tools/commands, not stalled. Skip entirely.
|
|
380
|
-
const claudePid = this.getClaudePid(tmuxSession);
|
|
410
|
+
const claudePid = await this.getClaudePid(tmuxSession);
|
|
381
411
|
if (claudePid) {
|
|
382
|
-
const children = this.getChildProcesses(claudePid);
|
|
412
|
+
const children = await this.getChildProcesses(claudePid);
|
|
383
413
|
const activeChildren = children.filter(c => !this.isExcluded(c.command));
|
|
384
414
|
if (activeChildren.length > 0)
|
|
385
415
|
return;
|
|
@@ -545,13 +575,13 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
545
575
|
* @deprecated method name retained for v0.x compat — internal callers
|
|
546
576
|
* use the framework-generic shape.
|
|
547
577
|
*/
|
|
548
|
-
getClaudePid(tmuxSession) {
|
|
578
|
+
async getClaudePid(tmuxSession) {
|
|
549
579
|
return this.getFrameworkPid(tmuxSession);
|
|
550
580
|
}
|
|
551
|
-
getFrameworkPid(tmuxSession) {
|
|
581
|
+
async getFrameworkPid(tmuxSession) {
|
|
552
582
|
try {
|
|
553
583
|
// Get pane PID
|
|
554
|
-
const panePidStr =
|
|
584
|
+
const panePidStr = (await shellExecAsync(`${this.config.sessions.tmuxPath} list-panes -t "=${tmuxSession}" -F "#{pane_pid}" 2>/dev/null`)).trim().split('\n')[0];
|
|
555
585
|
if (!panePidStr)
|
|
556
586
|
return null;
|
|
557
587
|
const panePid = parseInt(panePidStr, 10);
|
|
@@ -562,7 +592,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
562
592
|
// own command first — if it matches a known framework binary,
|
|
563
593
|
// return it. Without this, pgrep -P finds no match and the
|
|
564
594
|
// watchdog silently no-ops.
|
|
565
|
-
const paneCmd =
|
|
595
|
+
const paneCmd = (await shellExecAsync(`ps -p ${panePid} -o comm= 2>/dev/null`)).trim();
|
|
566
596
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
567
597
|
const { listProcessSignals } = require('./frameworkProcessSignals.js');
|
|
568
598
|
const signals = listProcessSignals();
|
|
@@ -581,7 +611,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
581
611
|
// Fallback: pane runs a shell wrapper that has a framework CLI as
|
|
582
612
|
// a child. egrep alternation over every framework's bracket needle.
|
|
583
613
|
const needle = signals.map((s) => s.psGrepNeedle).join('|');
|
|
584
|
-
const childPidStr =
|
|
614
|
+
const childPidStr = (await shellExecAsync(`pgrep -P ${panePid} 2>/dev/null | xargs -I@ ps -p @ -o pid=,command= 2>/dev/null | egrep -i '${needle}' | head -1 | awk '{print $1}'`)).trim();
|
|
585
615
|
if (!childPidStr)
|
|
586
616
|
return null;
|
|
587
617
|
const pid = parseInt(childPidStr, 10);
|
|
@@ -592,15 +622,15 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
592
622
|
return null;
|
|
593
623
|
}
|
|
594
624
|
}
|
|
595
|
-
getChildProcesses(pid) {
|
|
625
|
+
async getChildProcesses(pid) {
|
|
596
626
|
try {
|
|
597
|
-
const childPidsStr =
|
|
627
|
+
const childPidsStr = (await shellExecAsync(`pgrep -P ${pid} 2>/dev/null`)).trim();
|
|
598
628
|
if (!childPidsStr)
|
|
599
629
|
return [];
|
|
600
630
|
const childPids = childPidsStr.split('\n').filter(Boolean).join(',');
|
|
601
631
|
if (!childPids)
|
|
602
632
|
return [];
|
|
603
|
-
const output =
|
|
633
|
+
const output = (await shellExecAsync(`ps -o pid=,etime=,command= -p ${childPids} 2>/dev/null`)).trim();
|
|
604
634
|
if (!output)
|
|
605
635
|
return [];
|
|
606
636
|
const results = [];
|
|
@@ -635,7 +665,7 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
635
665
|
* Returns true if this PID looks like a waiting consumer in an active
|
|
636
666
|
* pipeline — in which case escalation should be skipped.
|
|
637
667
|
*/
|
|
638
|
-
hasActivePipelineSibling(pid, command) {
|
|
668
|
+
async hasActivePipelineSibling(pid, command) {
|
|
639
669
|
// Step 1: is the command a stdin-consuming candidate at all?
|
|
640
670
|
const consumer = STDIN_CONSUMER_PATTERNS.find(p => p.cmd.test(command));
|
|
641
671
|
if (!consumer)
|
|
@@ -646,11 +676,11 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
646
676
|
return false;
|
|
647
677
|
// Step 3: find the process group and peers.
|
|
648
678
|
try {
|
|
649
|
-
const pgidStr =
|
|
679
|
+
const pgidStr = (await shellExecAsync(`ps -o pgid= -p ${pid} 2>/dev/null`)).trim();
|
|
650
680
|
const pgid = parseInt(pgidStr, 10);
|
|
651
681
|
// Check process group peers (pipelines share pgid on macOS/Linux).
|
|
652
682
|
if (!isNaN(pgid) && pgid > 0) {
|
|
653
|
-
const peersOutput =
|
|
683
|
+
const peersOutput = (await shellExecAsync(`ps -o pid=,command= -g ${pgid} 2>/dev/null`)).trim();
|
|
654
684
|
for (const line of peersOutput.split('\n')) {
|
|
655
685
|
const match = line.trim().match(/^(\d+)\s+(.+)$/);
|
|
656
686
|
if (!match)
|
|
@@ -669,11 +699,11 @@ export class SessionWatchdog extends EventEmitter {
|
|
|
669
699
|
// Fallback: also check direct descendants of the consumer PID. In
|
|
670
700
|
// some shell exec patterns the producer becomes a CHILD of the
|
|
671
701
|
// exec'd consumer rather than a pgid sibling.
|
|
672
|
-
const childPidsStr =
|
|
702
|
+
const childPidsStr = (await shellExecAsync(`pgrep -P ${pid} 2>/dev/null`)).trim();
|
|
673
703
|
if (childPidsStr) {
|
|
674
704
|
const childPids = childPidsStr.split('\n').filter(Boolean).join(',');
|
|
675
705
|
if (childPids) {
|
|
676
|
-
const childOutput =
|
|
706
|
+
const childOutput = (await shellExecAsync(`ps -o pid=,command= -p ${childPids} 2>/dev/null`)).trim();
|
|
677
707
|
for (const line of childOutput.split('\n')) {
|
|
678
708
|
const match = line.trim().match(/^(\d+)\s+(.+)$/);
|
|
679
709
|
if (!match)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionWatchdog.js","sourceRoot":"","sources":["../../src/monitoring/SessionWatchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,4BAA4B,GAE7B,MAAM,yBAAyB,CAAC;AAEjC,0EAA0E;AAC1E,SAAS,SAAS,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI;IAC5C,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AACxF,CAAC;AAID,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,8EAA8E;AAC9E,+EAA+E;AAC/E,mCAAmC;AACnC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,iEAAc,CAAA;IACd,uDAAS,CAAA;IACT,2DAAW,CAAA;IACX,2DAAW,CAAA;IACX,mEAAe,CAAA;AACjB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAuCD,6CAA6C;AAC7C,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,iCAAiC;AACjC,MAAM,iBAAiB,GAA2B;IAChD,uBAAuB;IACvB,oBAAoB,EAAE,YAAY;IAClC,sEAAsE;IACtE,oEAAoE;IACpE,yEAAyE;IACzE,4EAA4E;IAC5E,wEAAwE;IACxE,iEAAiE;IACjE,0DAA0D;IAC1D,mDAAmD;IACnD,gEAAgE;IAChE,0EAA0E;IAC1E,4DAA4D;IAC5D,oCAAoC;IACpC,YAAY,EAAE,OAAO,EAAE,OAAO;IAC9B,iBAAiB,EAAE,cAAc,EAAE,YAAY;IAC/C,yEAAyE;IACzE,yBAAyB;CAC1B,CAAC;AAEF,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,qEAAqE;AACrE,oEAAoE;AACpE,EAAE;AACF,uEAAuE;AACvE,yEAAyE;AACzE,4EAA4E;AAC5E,gDAAgD;AAChD,MAAM,uBAAuB,GAAuD;IAClF,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC1D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC3D,EAAE,GAAG,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC1D,EAAE,GAAG,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IAC1D,EAAE,GAAG,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC1D,EAAE,GAAG,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,IAAI,EAAE;IACzD,EAAE,GAAG,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC7D,EAAE,GAAG,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,IAAI,EAAE;CAC1D,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,uDAAuD;IACvD,oBAAoB;IACpB,qBAAqB;CACtB,CAAC;AAEF,gEAAgE;AAChE,MAAM,iBAAiB,GAAoC;IACzD,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM;IACjC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM;IACjC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK;CACrC,CAAC;AAEF,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,YAAY;AACxD,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,WAAW,GAAG,CAAC,CAAC;AAStB,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACvC,MAAM,CAAe;IACrB,cAAc,CAAiB;IAC/B,KAAK,CAAe;IACpB,QAAQ,GAA0C,IAAI,CAAC;IACvD,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,mBAAmB,GAAwB,EAAE,CAAC;IAC9C,OAAO,GAAG,IAAI,CAAC;IACf,OAAO,GAAG,KAAK,CAAC;IAEhB,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,OAAO,CAAS;IAExB,+EAA+E;IAC/E,YAAY,GAAgC,IAAI,CAAC;IAEjD,+EAA+E;IACvE,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,OAAO;IAExD,yEAAyE;IACjE,gBAAgB,GAAG,CAAC,CAAC;IAE7B,sEAAsE;IAC9D,oBAAoB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEpE,4EAA4E;IACpE,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,0BAA0B;IAC/E,MAAM,CAAU,2BAA2B,GAAG,OAAO,CAAC,CAAC,YAAY;IAE3E,yEAAyE;IACjE,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,0BAA0B;IAC5E,MAAM,CAAU,wBAAwB,GAAG,MAAM,CAAC,CAAC,kCAAkC;IAE7F;;;;;OAKG;IACK,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChE,wGAAwG;IACvF,iBAAiB,CAAS;IAE3C,YAAY,MAAoB,EAAE,cAA8B,EAAE,KAAmB;QACnF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,QAAQ,EAAE,cAAc,IAAI,wBAAwB,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,QAAQ,EAAE,iBAAiB,IAAI,4BAA4B,CAAC;QAErF,sBAAsB;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC;QACvH,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpE,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,WAAmB;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC;IACjE,CAAC;IAED,SAAS;QAKP,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,WAAW;YACnB,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI;SAC5D,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ;YACR,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,uBAAuB;IAEf,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;YAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,WAAW,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,mEAAmE;QACnE,qEAAqE;QACrE,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7C,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACtD,gEAAgE;YAChE,kEAAkE;YAClE,8DAA8D;YAC9D,8DAA8D;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,sBAAsB;gBACjE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC1B,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACf,qEAAqE;YACrE,+DAA+D;YAC/D,gEAAgE;YAChE,6DAA6D;YAC7D,6BAA6B;YAC7B,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtE,OAAO,CAAC,GAAG,CACT,eAAe,WAAW,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBAClE,uDAAuD,CACxD,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,kFAAkF;YAClF,iFAAiF;YACjF,qDAAqD;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAClG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,wEAAwE;gBACxE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,oEAAoE;YACpE,kEAAkE;YAClE,+BAA+B;YAC/B,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1E,OAAO,CAAC,GAAG,CACT,eAAe,WAAW,qBAAqB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBACjF,2EAA2E,CAC5E,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAoB;gBAC7B,KAAK,EAAE,eAAe,CAAC,KAAK;gBAC5B,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC1B,aAAa,EAAE,UAAU,CAAC,GAAG;gBAC7B,YAAY,EAAE,UAAU,CAAC,OAAO;gBAChC,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,CAAC;aACtC,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE7C,OAAO,CAAC,GAAG,CACT,eAAe,WAAW,qBAAqB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;gBAC5F,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CACtD,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtC,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,0CAA0C;QAC1C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,CAAC,WAAmB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QAChG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,sBAAsB,CAC/C,MAAM,EACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EACpC,GAAG,EACH,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,CACrC,CAAC;QAEF,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,0EAA0E;YAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,uEAAuE;YACvE,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,WAAW,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,eAAe,CAAC,wBAAwB;YAAE,OAAO;QAE1F,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CACT,eAAe,WAAW,8CAA8C;YACxE,gBAAgB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,kCAAkC,CAC/E,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,WAAmB;QACrC,iEAAiE;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,eAAe,CAAC,2BAA2B,EAAE,CAAC;YAC5F,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;QACxC,CAAC;QAED,kFAAkF;QAClF,6EAA6E;QAC7E,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,mEAAmE;QACnE,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO;QAEjE,iFAAiF;QACjF,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC;QAEtB,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,mEAAmE;QACnE,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,+DAA+D,CAAC,CAAC;QACvG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAsB;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,oBAAoB,KAAK,CAAC,aAAa,mBAAmB,CAAC,CAAC;YAClG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAElC,IAAI,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,oCAAoC,CAAC,CAAC;gBAC5E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,UAAU,eAAe,EAAE;gBACpG,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;aACpE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAA4B,CAAC,IAAI,MAAM,CAAC;QAC/E,IAAI,WAAW,GAAG,YAAY;YAAE,OAAO;QAEvC,KAAK,CAAC,KAAK,GAAG,SAA4B,CAAC;QAC3C,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;QAE3B,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAEtF,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,yBAAyB,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBAChD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvG,MAAM;YAER,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,yBAAyB,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBAChD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvG,MAAM;YAER,KAAK,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;gBACjC,2EAA2E;gBAC3E,mEAAmE;gBACnE,wEAAwE;gBACxE,0EAA0E;gBAC1E,uEAAuE;gBACvE,mEAAmE;gBACnE,uDAAuD;gBACvD,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,8CAA8C,CAAC,CAAC;gBACtF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc;qBAC7B,mBAAmB,EAAE;qBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,0CAA0C;oBAC1C,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;oBACjG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE;oBACnF,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,QAAQ;iBACtB,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBAC3G,CAAC;qBAAM,CAAC;oBACN,uEAAuE;oBACvE,4DAA4D;oBAC5D,sEAAsE;oBACtE,+DAA+D;oBAC/D,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,qBAAqB,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;oBAC7F,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,SAAS,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvG,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAY,GAAG,EAAE;QAChF,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;QAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;QACjD,0FAA0F;QAC1F,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG;YAClB,qFAAqF;YACrF,EAAE;YACF,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACnC,gBAAgB,UAAU,UAAU;SACrC,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,WAAW,CAAC,IAAI,CACd,EAAE,EACF,4FAA4F,EAC5F,KAAK,EACL,YAAY,EACZ,KAAK,CACN,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,IAAI,CACd,EAAE,EACF,2CAA2C,EAC3C,kEAAkE,EAClE,6DAA6D,EAC7D,0CAA0C,EAC1C,sDAAsD,EACtD,gEAAgE,EAChE,mDAAmD,EACnD,yEAAyE,EACzE,EAAE,EACF,gCAAgC,EAChC,mEAAmE,EACnE,gEAAgE,EAChE,sEAAsE,EACtE,EAAE,EACF,uFAAuF,EACvF,wEAAwE,EACxE,EAAE,EACF,0FAA0F,CAC3F,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACxD,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,oCAAoC;aACpF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC,CAAC,CAAC;gBACjG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2FAA2F;YAC3F,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,CAAC,YAAY;QAC3B,CAAC;IACH,CAAC;IAED,+DAA+D;IAE/D;;;;;;;;OAQG;IACK,YAAY,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEO,eAAe,CAAC,WAAmB;QACzC,IAAI,CAAC;YACH,eAAe;YACf,MAAM,UAAU,GAAG,SAAS,CAC1B,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,oBAAoB,WAAW,gCAAgC,CAChG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEhC,mEAAmE;YACnE,gEAAgE;YAChE,8DAA8D;YAC9D,2DAA2D;YAC3D,4BAA4B;YAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,OAAO,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1E,8DAA8D;YAC9D,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnH,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,+DAA+D;gBAC/D,sDAAsD;gBACtD,IACE,OAAO,KAAK,QAAQ;uBACjB,OAAO,KAAK,IAAI,QAAQ,EAAE;uBAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EACnC,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtF,MAAM,WAAW,GAAG,SAAS,CAC3B,YAAY,OAAO,6EAA6E,MAAM,gCAAgC,CACvI,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,GAAW;QACnC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY;gBAAE,OAAO,EAAE,CAAC;YAE7B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,CAAC;YAE1B,MAAM,MAAM,GAAG,SAAS,CAAC,iCAAiC,SAAS,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1F,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,OAAO,GAAuB,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC/D,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC9B,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBACjB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;YAC1D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,wBAAwB,CAAC,GAAW,EAAE,OAAe;QAC3D,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9E,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,SAAS,CAAC,kBAAkB,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAEnC,mEAAmE;YACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,SAAS,CAC3B,0BAA0B,IAAI,cAAc,CAC7C,CAAC,IAAI,EAAE,CAAC;gBACT,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBAClD,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,OAAO,KAAK,GAAG;wBAAE,SAAS,CAAC,OAAO;oBACtC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,gBAAgB;oBACxF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;wBAAE,SAAS;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,+DAA+D;YAC/D,8CAA8C;YAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,SAAS,CAAC,0BAA0B,SAAS,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBACxF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;wBAClD,IAAI,CAAC,KAAK;4BAAE,SAAS;wBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBACxC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;YACzE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,OAAe;QAC5C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,8DAA8D;gBAC9D,+DAA+D;gBAC/D,qEAAqE;gBACrE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,CAAC,EAAE,CAAC,CAAC,0BAA0B;gBAC5D,SAAS;YACX,CAAC;YACD,2DAA2D;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC7C,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;;YAC3D,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,MAAc;QAC5C,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAwB,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,0DAA0D;YAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGO,kBAAkB,CACxB,WAAmB,EACnB,KAAsB,EACtB,MAAc,EACd,KAA0D;QAE1D,MAAM,KAAK,GAAsB;YAC/B,WAAW;YACX,KAAK;YACL,MAAM;YACN,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,GAAG;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAEjC,mEAAmE;QACnE,IAAI,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;YACpC,0DAA0D;YAC1D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,WAAmB,EAAE,KAAwB;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAAE,OAAO;QAC9D,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QAEvE,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,IAAI,EAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,KAAwB;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9D,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAgB;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAExB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC;YAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;iBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC;iBACxE,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAgB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAElF,MAAM,KAAK,GAAkB;YAC3B,kBAAkB,EAAE,CAAC;YACrB,oBAAoB,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,8BAA8B;YAC9B,IAAK,KAAa,CAAC,cAAc,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW;oBAAE,KAAK,CAAC,UAAU,EAAE,CAAC;qBACjD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;oBAAE,KAAK,CAAC,aAAa,EAAE,CAAC;;oBACpD,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC;YACpE,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO;YACzC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChC,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"SessionWatchdog.js","sourceRoot":"","sources":["../../src/monitoring/SessionWatchdog.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-07T22:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-07T22:07:36.622Z",
|
|
5
|
+
"instarVersion": "1.3.411",
|
|
6
6
|
"entryCount": 199,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -22,6 +22,16 @@ message" incident, topic 21816). Three fixes, all "don't replay a handled messag
|
|
|
22
22
|
refuses to re-queue an id already delivered/dropped this run, killing the "stale
|
|
23
23
|
already-delivered copies kept getting retried" half.
|
|
24
24
|
|
|
25
|
+
`SessionWatchdog` polled every 30s over every running session, running several
|
|
26
|
+
`ps`/`pgrep` probes per session via synchronous `spawnSync` — each blocking the single
|
|
27
|
+
Node event loop for its full duration. Under load (dozens of sessions on a busy box) the
|
|
28
|
+
cumulative stall made the server miss its own `/health` window, so the supervisor
|
|
29
|
+
declared it down and restarted it in a loop (2026-06-07 "server temporarily down on
|
|
30
|
+
every message" incident, topic 21816). The watchdog's process scans are now async
|
|
31
|
+
(`execFile`) and the poll yields the event loop between sessions, so health checks stay
|
|
32
|
+
responsive while scans run. The watchdog's escalation/kill DECISIONS are unchanged —
|
|
33
|
+
only the I/O mechanism of its read-only probes changed.
|
|
34
|
+
|
|
25
35
|
## What to Tell Your User
|
|
26
36
|
|
|
27
37
|
If they saw the same message echoed back repeatedly, or "server temporarily down" on
|
|
@@ -29,6 +39,10 @@ nearly every message during an overload: that replay loop is fixed — an alread
|
|
|
29
39
|
message is no longer re-run, and the queue won't re-deliver something it already sent.
|
|
30
40
|
Nothing for them to do; their messages were never lost (they queued and delivered).
|
|
31
41
|
|
|
42
|
+
If they saw "server temporarily down" on nearly every message during a busy period,
|
|
43
|
+
with the server restarting repeatedly: a big contributor was the watchdog freezing the
|
|
44
|
+
event loop while scanning processes. It no longer does. Nothing for them to do.
|
|
45
|
+
|
|
32
46
|
## Summary of New Capabilities
|
|
33
47
|
|
|
34
48
|
- `MessageProcessingLedger.hasReplyCommittedForTopicSince(topic, sinceISO)` — durable
|
|
@@ -40,6 +54,12 @@ Nothing for them to do; their messages were never lost (they queued and delivere
|
|
|
40
54
|
- `MessageQueue.enqueue` is id-idempotent (returns boolean); `MessageQueue.markDelivered`
|
|
41
55
|
records delivered/dropped ids so a redelivery can't re-queue them.
|
|
42
56
|
|
|
57
|
+
- `SessionWatchdog` process scans (`getFrameworkPid`/`getClaudePid`/`getChildProcesses`/
|
|
58
|
+
`hasActivePipelineSibling`/`checkCompactionIdle`) are async (`execFile`) instead of
|
|
59
|
+
blocking `spawnSync`.
|
|
60
|
+
- `poll()` yields the event loop (`setImmediate`) between sessions so a scan over many
|
|
61
|
+
sessions can't monopolize the loop and starve `/health`.
|
|
62
|
+
|
|
43
63
|
## Evidence
|
|
44
64
|
|
|
45
65
|
`tests/unit/stuck-message-recovery.test.ts`, `MessageProcessingLedger.test.ts`,
|
|
@@ -50,6 +70,14 @@ re-enqueue an already-delivered id; wiring guards assert routes.ts captures the
|
|
|
50
70
|
and reinjectStuck forwards it. causalAutopsy: latent (the stuck==unanswered assumption
|
|
51
71
|
surfaced under sustained CPU starvation that made replies fail to commit).
|
|
52
72
|
|
|
73
|
+
`tests/unit/SessionWatchdog-nonblocking.test.ts`: scanning helpers return Promises; a
|
|
74
|
+
0ms timer fires during an in-flight probe (loop stays live); source guards assert no
|
|
75
|
+
`spawnSync(` call, `execFileAsync` present, the three helpers async, and `poll()` yields
|
|
76
|
+
via `setImmediate`. Existing compaction/pipeline/mcp/rate-limit watchdog suites updated
|
|
77
|
+
to `await` and pass. 72 watchdog unit tests green; `tsc --noEmit` clean. causalAutopsy:
|
|
78
|
+
latent — synchronous process scans were always event-loop-blocking, but only surfaced as
|
|
79
|
+
a health-miss restart loop once session count × machine load grew large enough.
|
|
80
|
+
|
|
53
81
|
## Scope (honest)
|
|
54
82
|
|
|
55
83
|
Contained Tier-1 fix to the existing exactly-once ingress + lifeline replay subsystems.
|
|
@@ -57,3 +85,9 @@ No new HTTP route, config default, or migration step. The reply-evidence false-n
|
|
|
57
85
|
case (two distinct rapid questions, the second crashes before the first's reply commits)
|
|
58
86
|
is bounded — that message was already routed once, so it isn't lost, only a redundant
|
|
59
87
|
re-run is skipped. 603 messaging/lifeline unit tests green; `tsc --noEmit` clean.
|
|
88
|
+
|
|
89
|
+
Contained Tier-1 refactor of one monitor (`src/monitoring/SessionWatchdog.ts`) + its
|
|
90
|
+
tests. Behavior-equivalent (same commands, parsing, thresholds, LLM gate); only the
|
|
91
|
+
sync→async I/O mechanism changed. The watchdog stays opt-in. The same blocking-scan
|
|
92
|
+
pattern exists in OrphanProcessReaper / mcpProcessReaper (lower cadence — memory-pressure
|
|
93
|
+
and 30-min triggers); those are a candidate follow-up, not in this PR.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Side-Effects Review — SessionWatchdog non-blocking process scans
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `watchdog-nonblocking-scans`
|
|
4
|
+
**Date:** `2026-06-07`
|
|
5
|
+
**Author:** `Echo`
|
|
6
|
+
**Tier:** 1 (internal monitor refactor; no API/route/config/migration surface)
|
|
7
|
+
**Second-pass reviewer:** `Echo (self) — Tier-1; the behavior-equivalence + ordering analysis below is load-bearing`
|
|
8
|
+
|
|
9
|
+
## Summary of the change
|
|
10
|
+
|
|
11
|
+
`SessionWatchdog` polled every 30s over EVERY running session, running several
|
|
12
|
+
`ps`/`pgrep` probes per session via **synchronous** `spawnSync` (5s timeout each).
|
|
13
|
+
Each probe blocked the single Node event loop for its full duration; under load
|
|
14
|
+
(dozens of sessions, a busy box) the cumulative stall made the server miss its own
|
|
15
|
+
`/health` window → false "server temporarily down" + restart loop (2026-06-07 topic
|
|
16
|
+
21816 incident). This converts the watchdog's process scans to async (`execFile`) and
|
|
17
|
+
makes the poll yield the loop between sessions. File: `src/monitoring/SessionWatchdog.ts`.
|
|
18
|
+
|
|
19
|
+
- `shellExec` (spawnSync) → `shellExecAsync` (`promisify(execFile)`); returns captured
|
|
20
|
+
stdout or '' on non-zero exit/timeout — identical to the prior `.stdout ?? ''`.
|
|
21
|
+
- `getFrameworkPid`, `getClaudePid`, `getChildProcesses`, `hasActivePipelineSibling`,
|
|
22
|
+
`checkCompactionIdle` are now `async`; all internal callers (`checkSession`,
|
|
23
|
+
`checkCompactionIdle`) `await` them.
|
|
24
|
+
- `poll()` `await new Promise(setImmediate)` between sessions so a scan over many
|
|
25
|
+
sessions can never monopolize the loop.
|
|
26
|
+
|
|
27
|
+
## Decision-point inventory
|
|
28
|
+
|
|
29
|
+
- The watchdog's escalation/kill decisions are UNCHANGED — only the I/O mechanism of
|
|
30
|
+
the read-only process probes changed (sync → async). Same commands, same parsing,
|
|
31
|
+
same thresholds, same LLM gate.
|
|
32
|
+
- No message block/allow surface. No new route/config/migration.
|
|
33
|
+
|
|
34
|
+
## 1. Over-block (escalating a session that shouldn't be)
|
|
35
|
+
|
|
36
|
+
Behavior is preserved: the probe commands, output parsing, stuck-thresholds, pipeline
|
|
37
|
+
guard, and LLM gate are byte-for-byte the same. `execFile`'s non-zero-exit throw is
|
|
38
|
+
caught and mapped to the captured stdout (or '') — matching `spawnSync(...).stdout ??
|
|
39
|
+
''`, which never threw. So a pgrep/egrep no-match still reads as "no PID / no children",
|
|
40
|
+
exactly as before. No new false escalation path.
|
|
41
|
+
|
|
42
|
+
## 2. Under-block (missing a genuinely stuck session)
|
|
43
|
+
|
|
44
|
+
The scans now interleave with other event-loop work, but each poll still visits every
|
|
45
|
+
session and runs the same probes; nothing is skipped. The 5s per-probe timeout is
|
|
46
|
+
preserved (passed to execFile). A probe that times out returns '' (treated as
|
|
47
|
+
"unknown / no match") exactly as the sync version did. The `running` re-entrancy guard
|
|
48
|
+
still prevents overlapping polls.
|
|
49
|
+
|
|
50
|
+
## 3. Level-of-abstraction fit
|
|
51
|
+
|
|
52
|
+
Correct layer. This is the same OS-process read, moved off the synchronous path so it
|
|
53
|
+
shares the loop cooperatively. No LLM involved in the scan itself.
|
|
54
|
+
|
|
55
|
+
## 4. Ordering / concurrency
|
|
56
|
+
|
|
57
|
+
The methods became async, so within a single `checkSession` the probes now `await`
|
|
58
|
+
(yield) between steps. A session could be killed between two awaited probes — but the
|
|
59
|
+
existing code already tolerates "process gone" (empty output → null/empty list), so a
|
|
60
|
+
mid-scan disappearance degrades to the same no-op as a dead pid. The per-session
|
|
61
|
+
`await` + the inter-session `setImmediate` only ADD yield points; they do not reorder
|
|
62
|
+
the decisions within a session.
|
|
63
|
+
|
|
64
|
+
## 5. Blast radius
|
|
65
|
+
|
|
66
|
+
Single file. The watchdog is opt-in (`monitoring.watchdog.enabled`). The async
|
|
67
|
+
conversion does not change what the watchdog DOES, only that it stops starving the
|
|
68
|
+
event loop while doing it. Tests for compaction/pipeline/mcp-exclusion/rate-limit all
|
|
69
|
+
pass unchanged (their sync `mockReturnValue` stubs work under `await`).
|
|
70
|
+
|
|
71
|
+
## 6. Rollback
|
|
72
|
+
|
|
73
|
+
Pure code revert. No state/format/config change.
|
|
74
|
+
|
|
75
|
+
## 7. Tests
|
|
76
|
+
|
|
77
|
+
`tests/unit/SessionWatchdog-nonblocking.test.ts` (new): the scanning helpers return
|
|
78
|
+
Promises (async), a 0ms timer fires during an in-flight probe (loop stays live), and
|
|
79
|
+
source guards assert no `spawnSync(` call, `execFileAsync` present, the three helpers
|
|
80
|
+
are async, and `poll()` yields via `setImmediate`. Existing watchdog suites updated to
|
|
81
|
+
`await` the now-async methods. 72 watchdog unit tests green; `tsc --noEmit` clean.
|