crewly 1.20.227 → 1.20.228
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/backend/backend/src/constants.d.ts +29 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +29 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/services/apps/app-wake.service.d.ts +62 -2
- package/dist/backend/backend/src/services/apps/app-wake.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/apps/app-wake.service.js +305 -44
- package/dist/backend/backend/src/services/apps/app-wake.service.js.map +1 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.js +10 -1
- package/dist/backend/backend/src/services/apps/apps.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/session/input-guard-known-screens.d.ts +8 -0
- package/dist/backend/backend/src/services/session/input-guard-known-screens.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/input-guard-known-screens.js +100 -0
- package/dist/backend/backend/src/services/session/input-guard-known-screens.js.map +1 -1
- package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +6 -0
- package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/tui-input-guard.js +24 -5
- package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +29 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +29 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/session/input-guard-known-screens.d.ts +8 -0
- package/dist/cli/backend/src/services/session/input-guard-known-screens.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/input-guard-known-screens.js +100 -0
- package/dist/cli/backend/src/services/session/input-guard-known-screens.js.map +1 -1
- package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +6 -0
- package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/tui-input-guard.js +24 -5
- package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-wake.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-wake.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,26 @@
|
|
|
27
27
|
* - A failed delivery keeps the batch (and the cursor before it) and is
|
|
28
28
|
* retried with backoff; after WAKE_FAILS_BEFORE_ORC_NOTICE failures the
|
|
29
29
|
* orchestrator is told once.
|
|
30
|
+
* - Nothing may stall the loop (2026-10-05, 科技晨报: one poll pass never
|
|
31
|
+
* finished, the self-rescheduling loop stopped for good, and five owner
|
|
32
|
+
* comments sat in Cloud for hours with nothing logged). Each app's poll
|
|
33
|
+
* has a deadline (POLL_APP_DEADLINE_MS; a late result is discarded), a
|
|
34
|
+
* pass that still has not finished after POLL_PASS_STALL_MS is abandoned
|
|
35
|
+
* and a fresh one starts, and a delivery that has not settled after
|
|
36
|
+
* WAKE_DELIVER_TIMEOUT_MS counts as failed and is retried (a late success
|
|
37
|
+
* still settles the batch).
|
|
38
|
+
* - A batch being delivered is detached: changes arriving meanwhile open the
|
|
39
|
+
* next batch instead of being marked delivered without being in the
|
|
40
|
+
* message.
|
|
41
|
+
* - A watchdog on every scheduled pass re-arms a batch whose timer is gone
|
|
42
|
+
* and, once per batch, logs and tells the orchestrator about owner changes
|
|
43
|
+
* that have not reached their agent after WAKE_STUCK_NOTICE_MS.
|
|
44
|
+
* - Owner changes are delivered as owner-authored (`owner: true`, crewly#1105
|
|
45
|
+
* queue priority): a busy agent gets them queued ahead of system traffic,
|
|
46
|
+
* not after it goes idle.
|
|
47
|
+
* - Batches live in memory; the persisted cursor stays before the first
|
|
48
|
+
* change of every batch not yet delivered, so after a restart the same
|
|
49
|
+
* changes are read again and batched again.
|
|
30
50
|
* - An `ask` reaches a named agent only when it is in the publisher's team
|
|
31
51
|
* and already running; it never starts a stopped agent.
|
|
32
52
|
*
|
|
@@ -37,6 +57,32 @@ import { LoggerService } from '../core/logger.service.js';
|
|
|
37
57
|
import { AppsCloudError } from './apps-cloud.client.js';
|
|
38
58
|
import { buildAppWakeMessage, safeAppName } from './app-wake-message.js';
|
|
39
59
|
const C = CREWLY_APPS_CONSTANTS;
|
|
60
|
+
/** Settles like `promise`, or like `onTimeout()` (its value, or what it throws) after `ms` — whichever comes first. */
|
|
61
|
+
function withDeadline(promise, ms, onTimeout) {
|
|
62
|
+
let timer = null;
|
|
63
|
+
const deadline = new Promise((resolve, reject) => {
|
|
64
|
+
timer = setTimeout(() => {
|
|
65
|
+
try {
|
|
66
|
+
resolve(onTimeout());
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
reject(err);
|
|
70
|
+
}
|
|
71
|
+
}, ms);
|
|
72
|
+
timer.unref?.();
|
|
73
|
+
});
|
|
74
|
+
return Promise.race([promise, deadline]).finally(() => {
|
|
75
|
+
if (timer)
|
|
76
|
+
clearTimeout(timer);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** Thrown when one app's poll misses its deadline. */
|
|
80
|
+
class PollDeadlineError extends Error {
|
|
81
|
+
constructor(ms) {
|
|
82
|
+
super(`poll did not finish within ${Math.round(ms / 1000)} s`);
|
|
83
|
+
this.name = 'PollDeadlineError';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
40
86
|
/** Recipient key for the orchestrator (never a valid session name). */
|
|
41
87
|
export const ORC_RECIPIENT = '\u0000orchestrator';
|
|
42
88
|
/**
|
|
@@ -49,7 +95,16 @@ export class AppWakeService {
|
|
|
49
95
|
timer = null;
|
|
50
96
|
running = false;
|
|
51
97
|
ticking = null;
|
|
98
|
+
/** When the running pass started, and its generation (an abandoned pass stops at its next step) */
|
|
99
|
+
tickStartedAt = 0;
|
|
100
|
+
generation = 0;
|
|
101
|
+
passStallNotified = false;
|
|
102
|
+
/** Current poll of each app; a poll whose token was replaced or dropped discards its result */
|
|
103
|
+
pollTokens = new Map();
|
|
104
|
+
/** Batches collecting changes, by `appId\0recipient` */
|
|
52
105
|
batches = new Map();
|
|
106
|
+
/** Batches handed to `deliver` and not yet confirmed (in flight, or failed and waiting to retry) */
|
|
107
|
+
outgoing = new Map();
|
|
53
108
|
lastWakeAt = new Map();
|
|
54
109
|
/** Highest seq read per app (the registry holds what is safe to persist) */
|
|
55
110
|
fetched = new Map();
|
|
@@ -77,10 +132,13 @@ export class AppWakeService {
|
|
|
77
132
|
if (this.timer)
|
|
78
133
|
clearTimeout(this.timer);
|
|
79
134
|
this.timer = null;
|
|
80
|
-
|
|
135
|
+
this.generation++;
|
|
136
|
+
for (const b of [...this.batches.values(), ...this.outgoing.values()])
|
|
81
137
|
if (b.timer)
|
|
82
138
|
clearTimeout(b.timer);
|
|
83
139
|
this.batches.clear();
|
|
140
|
+
this.outgoing.clear();
|
|
141
|
+
this.pollTokens.clear();
|
|
84
142
|
}
|
|
85
143
|
/**
|
|
86
144
|
* Per-app backoff state (tests).
|
|
@@ -97,29 +155,57 @@ export class AppWakeService {
|
|
|
97
155
|
return;
|
|
98
156
|
this.timer = setTimeout(() => {
|
|
99
157
|
this.timer = null;
|
|
100
|
-
|
|
158
|
+
this.watchdog();
|
|
159
|
+
// The loop never waits on a pass for longer than the stall limit: the
|
|
160
|
+
// next scheduled pass then abandons it and starts afresh.
|
|
161
|
+
void withDeadline(this.tick(), C.POLL_PASS_STALL_MS, () => undefined)
|
|
162
|
+
.catch((err) => this.logger.warn('App change poll pass failed', { error: err instanceof Error ? err.message : String(err) }))
|
|
163
|
+
.finally(() => this.schedule());
|
|
101
164
|
}, C.POLL_INTERVAL_MS);
|
|
102
165
|
this.timer.unref?.();
|
|
103
166
|
}
|
|
104
167
|
/**
|
|
105
168
|
* One pass over the apps that are due. Exposed for tests and for an immediate poll.
|
|
169
|
+
* A pass still running after POLL_PASS_STALL_MS is abandoned and a fresh one starts.
|
|
106
170
|
*/
|
|
107
171
|
async tick() {
|
|
108
|
-
if (this.ticking)
|
|
109
|
-
|
|
110
|
-
|
|
172
|
+
if (this.ticking) {
|
|
173
|
+
const runningFor = this.now() - this.tickStartedAt;
|
|
174
|
+
if (runningFor < C.POLL_PASS_STALL_MS)
|
|
175
|
+
return this.ticking;
|
|
176
|
+
this.logger.warn('App change poll pass did not finish; abandoning it and starting a fresh one', { runningForMs: runningFor });
|
|
177
|
+
if (!this.passStallNotified) {
|
|
178
|
+
this.passStallNotified = true;
|
|
179
|
+
this.notifyOrc(`[APP CHANGES] Crewly's poll of app changes stalled for ${Math.round(runningFor / 60_000)} min and was restarted. ` +
|
|
180
|
+
'Owner changes made in that time are being read again now. If this repeats, the backend may need a restart.');
|
|
181
|
+
}
|
|
182
|
+
this.generation++;
|
|
111
183
|
this.ticking = null;
|
|
184
|
+
}
|
|
185
|
+
const gen = this.generation;
|
|
186
|
+
this.tickStartedAt = this.now();
|
|
187
|
+
const pass = this.runTick(gen).finally(() => {
|
|
188
|
+
if (this.ticking === pass)
|
|
189
|
+
this.ticking = null;
|
|
112
190
|
});
|
|
113
|
-
|
|
191
|
+
this.ticking = pass;
|
|
192
|
+
await pass;
|
|
193
|
+
if (gen === this.generation)
|
|
194
|
+
this.passStallNotified = false;
|
|
114
195
|
}
|
|
115
|
-
async runTick() {
|
|
196
|
+
async runTick(gen) {
|
|
116
197
|
if (!this.deps.client.isAvailable())
|
|
117
198
|
return;
|
|
118
199
|
const now = this.now();
|
|
119
|
-
const
|
|
200
|
+
const all = await withDeadline(this.deps.registry.list(), C.POLL_APP_DEADLINE_MS, () => null);
|
|
201
|
+
if (!all) {
|
|
202
|
+
this.logger.warn('Reading the apps registry did not finish; skipping this poll pass');
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const due = all.filter((e) => !e.deleted && (this.backoff.get(e.appId)?.nextAt ?? 0) <= now);
|
|
120
206
|
let next = 0;
|
|
121
207
|
const worker = async () => {
|
|
122
|
-
while (next < due.length) {
|
|
208
|
+
while (gen === this.generation && next < due.length) {
|
|
123
209
|
const app = due[next++];
|
|
124
210
|
await this.pollOne(app);
|
|
125
211
|
}
|
|
@@ -127,8 +213,12 @@ export class AppWakeService {
|
|
|
127
213
|
await Promise.all(Array.from({ length: Math.min(C.POLL_CONCURRENCY, due.length) }, worker));
|
|
128
214
|
}
|
|
129
215
|
async pollOne(app) {
|
|
216
|
+
const token = Symbol(app.appId);
|
|
217
|
+
this.pollTokens.set(app.appId, token);
|
|
130
218
|
try {
|
|
131
|
-
await this.pollApp(app)
|
|
219
|
+
await withDeadline(this.pollApp(app, token), C.POLL_APP_DEADLINE_MS, () => {
|
|
220
|
+
throw new PollDeadlineError(C.POLL_APP_DEADLINE_MS);
|
|
221
|
+
});
|
|
132
222
|
this.backoff.delete(app.appId);
|
|
133
223
|
}
|
|
134
224
|
catch (err) {
|
|
@@ -143,6 +233,14 @@ export class AppWakeService {
|
|
|
143
233
|
this.backoff.set(app.appId, { failures, nextAt: this.now() + wait });
|
|
144
234
|
this.logger.warn('Polling app changes failed', { appId: app.appId, failures, retryInMs: wait, error: err instanceof Error ? err.message : String(err) });
|
|
145
235
|
}
|
|
236
|
+
finally {
|
|
237
|
+
// A poll that missed its deadline may still finish later: its token is gone, so it changes nothing.
|
|
238
|
+
if (this.pollTokens.get(app.appId) === token)
|
|
239
|
+
this.pollTokens.delete(app.appId);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
isCurrentPoll(appId, token) {
|
|
243
|
+
return this.pollTokens.get(appId) === token;
|
|
146
244
|
}
|
|
147
245
|
deliveredSet(app) {
|
|
148
246
|
let set = this.delivered.get(app.appId);
|
|
@@ -152,11 +250,13 @@ export class AppWakeService {
|
|
|
152
250
|
}
|
|
153
251
|
return set;
|
|
154
252
|
}
|
|
155
|
-
async pollApp(app) {
|
|
253
|
+
async pollApp(app, token) {
|
|
156
254
|
const opts = { timeoutMs: C.POLL_REQUEST_TIMEOUT_MS };
|
|
157
255
|
if (app.cursor === null || app.cursor === undefined) {
|
|
158
256
|
// Never polled: start from now, never replay history.
|
|
159
257
|
const head = await this.deps.client.request('GET', `/apps/${app.appId}/changes`, opts);
|
|
258
|
+
if (!this.isCurrentPoll(app.appId, token))
|
|
259
|
+
return;
|
|
160
260
|
this.fetched.set(app.appId, head.seq);
|
|
161
261
|
await this.deps.registry.setProgress(app.appId, head.seq, []);
|
|
162
262
|
return;
|
|
@@ -166,6 +266,9 @@ export class AppWakeService {
|
|
|
166
266
|
let since = Math.max(app.cursor, this.fetched.get(app.appId) ?? app.cursor);
|
|
167
267
|
for (let page = 0; page < C.POLL_MAX_PAGES; page++) {
|
|
168
268
|
const res = await this.deps.client.request('GET', `/apps/${app.appId}/changes`, { ...opts, query: { since, wait: 0 } });
|
|
269
|
+
// Missed its deadline (or a newer poll of this app started): discard.
|
|
270
|
+
if (!this.isCurrentPoll(app.appId, token))
|
|
271
|
+
return;
|
|
169
272
|
const changes = Array.isArray(res.changes) ? res.changes : [];
|
|
170
273
|
for (const change of changes) {
|
|
171
274
|
if (typeof change.seq === 'number' && change.seq > since && !done.has(change.seq))
|
|
@@ -188,7 +291,7 @@ export class AppWakeService {
|
|
|
188
291
|
if (fetched === undefined)
|
|
189
292
|
return;
|
|
190
293
|
let safe = fetched;
|
|
191
|
-
for (const b of this.batches.values()) {
|
|
294
|
+
for (const b of [...this.batches.values(), ...this.outgoing.values()]) {
|
|
192
295
|
if (b.appId === appId)
|
|
193
296
|
safe = Math.min(safe, b.firstSeq - 1);
|
|
194
297
|
}
|
|
@@ -243,7 +346,7 @@ export class AppWakeService {
|
|
|
243
346
|
return;
|
|
244
347
|
const session = app.agentSession ?? null;
|
|
245
348
|
const key = `${app.appId}\u0000${session ?? ORC_RECIPIENT}`;
|
|
246
|
-
if (this.batches.has(key))
|
|
349
|
+
if (this.batches.has(key) || this.outgoing.has(key))
|
|
247
350
|
return;
|
|
248
351
|
const batch = this.newBatch(app.appId, session, false, Number.POSITIVE_INFINITY);
|
|
249
352
|
batch.skippedNotice = true;
|
|
@@ -270,6 +373,10 @@ export class AppWakeService {
|
|
|
270
373
|
failures: 0,
|
|
271
374
|
orcNotified: false,
|
|
272
375
|
skippedNotice: false,
|
|
376
|
+
openedAt: this.now(),
|
|
377
|
+
inFlight: false,
|
|
378
|
+
reportSkipped: null,
|
|
379
|
+
stuckNotified: false,
|
|
273
380
|
};
|
|
274
381
|
}
|
|
275
382
|
async recipientFor(app, change) {
|
|
@@ -366,12 +473,39 @@ export class AppWakeService {
|
|
|
366
473
|
arm(key, batch, delay) {
|
|
367
474
|
if (batch.timer)
|
|
368
475
|
clearTimeout(batch.timer);
|
|
369
|
-
batch.timer = setTimeout(() =>
|
|
476
|
+
batch.timer = setTimeout(() => {
|
|
477
|
+
batch.timer = null;
|
|
478
|
+
if (this.outgoing.get(key) === batch)
|
|
479
|
+
void this.retry(key);
|
|
480
|
+
else
|
|
481
|
+
void this.flush(key);
|
|
482
|
+
}, Math.max(0, delay));
|
|
370
483
|
batch.timer.unref?.();
|
|
371
484
|
}
|
|
485
|
+
/** Whether a batch holds only visitor submissions (or only a skipped-submissions notice). */
|
|
486
|
+
static visitorOnly(batch) {
|
|
487
|
+
return batch.dataTotal === 0 && batch.eventsTotal === 0 && batch.commentsTotal === 0;
|
|
488
|
+
}
|
|
489
|
+
/** Fold `from` (newer) into `into` (older): one message covers both. */
|
|
490
|
+
static merge(into, from) {
|
|
491
|
+
const keep = (list, max) => (list.length > max ? list.slice(list.length - max) : list);
|
|
492
|
+
into.activate = into.activate || from.activate;
|
|
493
|
+
into.dataChanges = keep([...into.dataChanges, ...from.dataChanges], C.MAX_BATCH_DATA_CHANGES);
|
|
494
|
+
into.events = keep([...into.events, ...from.events], C.MAX_EVENTS_PER_WAKE);
|
|
495
|
+
into.visitorChanges = keep([...into.visitorChanges, ...from.visitorChanges], C.MAX_BATCH_DATA_CHANGES);
|
|
496
|
+
into.comments = keep([...into.comments, ...from.comments], C.COMMENTS.MAX_PER_WAKE);
|
|
497
|
+
into.dataTotal += from.dataTotal;
|
|
498
|
+
into.eventsTotal += from.eventsTotal;
|
|
499
|
+
into.visitorTotal += from.visitorTotal;
|
|
500
|
+
into.commentsTotal += from.commentsTotal;
|
|
501
|
+
into.seqs = keep([...into.seqs, ...from.seqs], C.MAX_DELIVERED_SEQS);
|
|
502
|
+
into.firstSeq = Math.min(into.firstSeq, from.firstSeq);
|
|
503
|
+
into.skippedNotice = into.skippedNotice && from.skippedNotice;
|
|
504
|
+
into.openedAt = Math.min(into.openedAt, from.openedAt);
|
|
505
|
+
}
|
|
372
506
|
/**
|
|
373
|
-
* Send one batch now (timer callback; tests). On failure the
|
|
374
|
-
* pending and is retried with backoff.
|
|
507
|
+
* Send one collecting batch now (timer callback; tests). On failure the
|
|
508
|
+
* batch stays pending and is retried with backoff.
|
|
375
509
|
*
|
|
376
510
|
* @param key - Batch key
|
|
377
511
|
* @returns Whether a message was delivered
|
|
@@ -383,23 +517,71 @@ export class AppWakeService {
|
|
|
383
517
|
if (batch.timer)
|
|
384
518
|
clearTimeout(batch.timer);
|
|
385
519
|
batch.timer = null;
|
|
386
|
-
|
|
387
|
-
|
|
520
|
+
// The previous batch for this agent is still out: fold this one into it
|
|
521
|
+
// when it is waiting to retry (its retry carries both), else check again
|
|
522
|
+
// shortly.
|
|
523
|
+
const out = this.outgoing.get(key);
|
|
524
|
+
if (out) {
|
|
525
|
+
if (out.inFlight) {
|
|
526
|
+
this.arm(key, batch, C.WAKE_INFLIGHT_RECHECK_MS);
|
|
527
|
+
return false;
|
|
528
|
+
}
|
|
529
|
+
this.batches.delete(key);
|
|
530
|
+
AppWakeService.merge(out, batch);
|
|
531
|
+
if (!out.timer)
|
|
532
|
+
this.arm(key, out, 0);
|
|
533
|
+
return false;
|
|
534
|
+
}
|
|
388
535
|
// Visitor submissions alone never start the agent: wait until it runs.
|
|
389
|
-
|
|
390
|
-
if (visitorOnly && batch.session !== null && this.deps.isRunning && !this.deps.isRunning(batch.session)) {
|
|
536
|
+
if (AppWakeService.visitorOnly(batch) && batch.session !== null && this.deps.isRunning && !this.deps.isRunning(batch.session)) {
|
|
391
537
|
if (this.batches.get(key) === batch)
|
|
392
538
|
this.arm(key, batch, C.VISITOR_WAKE.PENDING_RECHECK_MS);
|
|
393
539
|
return false;
|
|
394
540
|
}
|
|
541
|
+
// Detach: changes arriving while this one is delivered open the next batch.
|
|
542
|
+
this.batches.delete(key);
|
|
543
|
+
this.outgoing.set(key, batch);
|
|
544
|
+
return this.send(key, batch);
|
|
545
|
+
}
|
|
546
|
+
/** Retry an outgoing batch (its retry timer), folding in whatever collected meanwhile. */
|
|
547
|
+
async retry(key) {
|
|
548
|
+
const batch = this.outgoing.get(key);
|
|
549
|
+
if (!batch || batch.inFlight)
|
|
550
|
+
return false;
|
|
551
|
+
if (batch.timer)
|
|
552
|
+
clearTimeout(batch.timer);
|
|
553
|
+
batch.timer = null;
|
|
554
|
+
const newer = this.batches.get(key);
|
|
555
|
+
if (newer) {
|
|
556
|
+
if (newer.timer)
|
|
557
|
+
clearTimeout(newer.timer);
|
|
558
|
+
this.batches.delete(key);
|
|
559
|
+
AppWakeService.merge(batch, newer);
|
|
560
|
+
}
|
|
561
|
+
return this.send(key, batch);
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Deliver an outgoing batch once, bounded by WAKE_DELIVER_TIMEOUT_MS.
|
|
565
|
+
*
|
|
566
|
+
* @param key - Batch key
|
|
567
|
+
* @param batch - The batch (already in `outgoing`)
|
|
568
|
+
* @returns Whether it was delivered
|
|
569
|
+
*/
|
|
570
|
+
async send(key, batch) {
|
|
571
|
+
batch.inFlight = true;
|
|
572
|
+
const app = await this.deps.registry.get(batch.appId).catch(() => null);
|
|
395
573
|
// Skipped visitor submissions are reported in the next message to the
|
|
396
574
|
// agent visitors wake (the publisher, else the orchestrator).
|
|
397
575
|
const isVisitorRecipient = (app?.agentSession ?? null) === batch.session;
|
|
398
576
|
const vstate = app && isVisitorRecipient ? this.visitorState(app) : null;
|
|
399
|
-
|
|
400
|
-
|
|
577
|
+
if (batch.reportSkipped === null)
|
|
578
|
+
batch.reportSkipped = vstate?.skipped ?? 0;
|
|
579
|
+
const skipped = batch.reportSkipped;
|
|
580
|
+
if (AppWakeService.visitorOnly(batch) && batch.visitorTotal === 0 && skipped === 0) {
|
|
401
581
|
// A notice-only batch with nothing left to report.
|
|
402
|
-
|
|
582
|
+
batch.inFlight = false;
|
|
583
|
+
if (this.outgoing.get(key) === batch)
|
|
584
|
+
this.outgoing.delete(key);
|
|
403
585
|
return false;
|
|
404
586
|
}
|
|
405
587
|
const text = buildAppWakeMessage({
|
|
@@ -417,32 +599,62 @@ export class AppWakeService {
|
|
|
417
599
|
visitorSkipped: skipped,
|
|
418
600
|
skillsPath: this.deps.skillsPath,
|
|
419
601
|
});
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
602
|
+
const owner = !AppWakeService.visitorOnly(batch);
|
|
603
|
+
const seqs = batch.seqs.filter((n) => Number.isFinite(n));
|
|
604
|
+
const ref = seqs.length > 0 ? `app:${batch.appId}:${Math.min(...seqs)}-${Math.max(...seqs)}:${seqs.length}` : undefined;
|
|
605
|
+
const sentSeqs = new Set(batch.seqs);
|
|
606
|
+
const attempt = Promise.resolve()
|
|
607
|
+
.then(() => this.deps.deliver(batch.session, text, { activate: batch.activate, ...(owner ? { owner: true } : {}), ...(ref ? { ref } : {}) }))
|
|
608
|
+
.catch((err) => {
|
|
425
609
|
this.logger.warn('App change wake failed', { appId: batch.appId, session: batch.session, error: err instanceof Error ? err.message : String(err) });
|
|
426
|
-
}
|
|
427
|
-
if (!ok) {
|
|
428
|
-
batch.failures++;
|
|
429
|
-
const retry = Math.min(C.WAKE_RETRY_BASE_MS * 2 ** (batch.failures - 1), C.WAKE_RETRY_MAX_MS);
|
|
430
|
-
this.logger.warn('App change wake was not delivered; will retry', { appId: batch.appId, session: batch.session ?? 'orchestrator', failures: batch.failures, retryInMs: retry });
|
|
431
|
-
if (batch.failures >= C.WAKE_FAILS_BEFORE_ORC_NOTICE && !batch.orcNotified && batch.session !== null) {
|
|
432
|
-
batch.orcNotified = true;
|
|
433
|
-
const notice = `[APP CHANGES] Changes in app "${safeAppName(app?.name ?? batch.appId)}" (${batch.appId}) could not be delivered to ` +
|
|
434
|
-
`${batch.session} after ${batch.failures} tries. Crewly keeps retrying. Check whether that agent is stuck or signed out.`;
|
|
435
|
-
await this.deps.deliver(null, notice, { activate: false }).catch(() => false);
|
|
436
|
-
}
|
|
437
|
-
if (this.batches.get(key) === batch)
|
|
438
|
-
this.arm(key, batch, retry);
|
|
439
610
|
return false;
|
|
611
|
+
});
|
|
612
|
+
const outcome = await withDeadline(attempt.then((ok) => (ok ? 'ok' : 'failed')), C.WAKE_DELIVER_TIMEOUT_MS, () => 'timeout');
|
|
613
|
+
batch.inFlight = false;
|
|
614
|
+
if (this.outgoing.get(key) !== batch)
|
|
615
|
+
return false; // stopped meanwhile
|
|
616
|
+
if (outcome === 'ok')
|
|
617
|
+
return this.succeeded(key, batch, app, vstate, skipped);
|
|
618
|
+
if (outcome === 'timeout') {
|
|
619
|
+
this.logger.warn('App change wake did not finish in time; will retry', {
|
|
620
|
+
appId: batch.appId,
|
|
621
|
+
session: batch.session ?? 'orchestrator',
|
|
622
|
+
timeoutMs: C.WAKE_DELIVER_TIMEOUT_MS,
|
|
623
|
+
});
|
|
624
|
+
// A late success still settles the batch, unless a retry is already out
|
|
625
|
+
// or the batch has grown since (then the retry carries everything).
|
|
626
|
+
void attempt.then((ok) => {
|
|
627
|
+
if (!ok || this.outgoing.get(key) !== batch || batch.inFlight)
|
|
628
|
+
return;
|
|
629
|
+
if (!batch.seqs.every((n) => sentSeqs.has(n)))
|
|
630
|
+
return;
|
|
631
|
+
this.logger.info('A timed-out app change wake arrived after all', { appId: batch.appId, session: batch.session ?? 'orchestrator' });
|
|
632
|
+
if (batch.timer)
|
|
633
|
+
clearTimeout(batch.timer);
|
|
634
|
+
batch.timer = null;
|
|
635
|
+
void this.succeeded(key, batch, app, vstate, skipped);
|
|
636
|
+
});
|
|
440
637
|
}
|
|
441
|
-
|
|
638
|
+
batch.failures++;
|
|
639
|
+
const retry = Math.min(C.WAKE_RETRY_BASE_MS * 2 ** (batch.failures - 1), C.WAKE_RETRY_MAX_MS);
|
|
640
|
+
this.logger.warn('App change wake was not delivered; will retry', { appId: batch.appId, session: batch.session ?? 'orchestrator', failures: batch.failures, retryInMs: retry });
|
|
641
|
+
if (batch.failures >= C.WAKE_FAILS_BEFORE_ORC_NOTICE && !batch.orcNotified && batch.session !== null) {
|
|
642
|
+
batch.orcNotified = true;
|
|
643
|
+
this.notifyOrc(`[APP CHANGES] Changes in app "${safeAppName(app?.name ?? batch.appId)}" (${batch.appId}) could not be delivered to ` +
|
|
644
|
+
`${batch.session} after ${batch.failures} tries. Crewly keeps retrying. Check whether that agent is stuck or signed out.`);
|
|
645
|
+
}
|
|
646
|
+
this.arm(key, batch, retry);
|
|
647
|
+
return false;
|
|
648
|
+
}
|
|
649
|
+
async succeeded(key, batch, app, vstate, skipped) {
|
|
650
|
+
if (this.outgoing.get(key) !== batch)
|
|
651
|
+
return false;
|
|
652
|
+
this.outgoing.delete(key);
|
|
653
|
+
const recipient = batch.session ?? ORC_RECIPIENT;
|
|
442
654
|
const at = this.now();
|
|
443
655
|
this.lastWakeAt.set(key, at);
|
|
444
656
|
await this.deps.registry.setLastWake(batch.appId, recipient, at).catch(() => undefined);
|
|
445
|
-
if (vstate) {
|
|
657
|
+
if (vstate && app) {
|
|
446
658
|
if (batch.visitorTotal > 0 || batch.skippedNotice)
|
|
447
659
|
vstate.count++;
|
|
448
660
|
vstate.skipped = Math.max(0, vstate.skipped - skipped);
|
|
@@ -461,13 +673,62 @@ export class AppWakeService {
|
|
|
461
673
|
comments: batch.commentsTotal,
|
|
462
674
|
visitorSubmissions: batch.visitorTotal,
|
|
463
675
|
...(skipped > 0 ? { visitorSkippedReported: skipped } : {}),
|
|
676
|
+
...(batch.failures > 0 ? { afterFailures: batch.failures } : {}),
|
|
464
677
|
});
|
|
678
|
+
// Changes that arrived during the delivery wait for the cooldown it started.
|
|
679
|
+
const next = this.batches.get(key);
|
|
680
|
+
if (next)
|
|
681
|
+
this.arm(key, next, C.COOLDOWN_MS);
|
|
465
682
|
await this.persistProgress(batch.appId).catch(() => undefined);
|
|
466
683
|
return true;
|
|
467
684
|
}
|
|
685
|
+
/** Tell the orchestrator something, without waiting on it for long. */
|
|
686
|
+
notifyOrc(text) {
|
|
687
|
+
void withDeadline(Promise.resolve()
|
|
688
|
+
.then(() => this.deps.deliver(null, text, { activate: false }))
|
|
689
|
+
.catch(() => false), C.WAKE_DELIVER_TIMEOUT_MS, () => false);
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* Runs before every scheduled pass: a batch with no timer and no delivery
|
|
693
|
+
* running is re-armed (it would otherwise wait forever), and owner changes
|
|
694
|
+
* that have not reached their agent after WAKE_STUCK_NOTICE_MS are logged
|
|
695
|
+
* and reported to the orchestrator, once per batch. Visitor-only batches
|
|
696
|
+
* waiting for their agent to run are expected to wait and are left alone.
|
|
697
|
+
*/
|
|
698
|
+
watchdog() {
|
|
699
|
+
const now = this.now();
|
|
700
|
+
for (const [key, batch] of [...this.batches.entries(), ...this.outgoing.entries()]) {
|
|
701
|
+
if (!batch.timer && !batch.inFlight) {
|
|
702
|
+
this.logger.warn('App change batch had no timer; re-armed', { appId: batch.appId, session: batch.session ?? 'orchestrator' });
|
|
703
|
+
this.arm(key, batch, 0);
|
|
704
|
+
}
|
|
705
|
+
if (AppWakeService.visitorOnly(batch) || batch.stuckNotified)
|
|
706
|
+
continue;
|
|
707
|
+
const ageMs = now - batch.openedAt;
|
|
708
|
+
if (ageMs < C.WAKE_STUCK_NOTICE_MS)
|
|
709
|
+
continue;
|
|
710
|
+
batch.stuckNotified = true;
|
|
711
|
+
const minutes = Math.round(ageMs / 60_000);
|
|
712
|
+
this.logger.warn('Owner changes in an app have not reached their agent', {
|
|
713
|
+
appId: batch.appId,
|
|
714
|
+
session: batch.session ?? 'orchestrator',
|
|
715
|
+
minutes,
|
|
716
|
+
inFlight: batch.inFlight,
|
|
717
|
+
failures: batch.failures,
|
|
718
|
+
comments: batch.commentsTotal,
|
|
719
|
+
dataChanges: batch.dataTotal,
|
|
720
|
+
events: batch.eventsTotal,
|
|
721
|
+
});
|
|
722
|
+
if (batch.session !== null) {
|
|
723
|
+
this.notifyOrc(`[APP CHANGES] The owner's changes in an app (${batch.appId}: ${batch.commentsTotal} comment(s), ${batch.dataTotal} data change(s), ` +
|
|
724
|
+
`${batch.eventsTotal} message(s)) have waited ${minutes} min to reach ${batch.session}. Crewly keeps trying. ` +
|
|
725
|
+
'Check whether that agent is stuck.');
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
468
729
|
/** @returns Keys of batches waiting to be sent (tests) */
|
|
469
730
|
pendingKeys() {
|
|
470
|
-
return [...this.batches.keys()];
|
|
731
|
+
return [...new Set([...this.batches.keys(), ...this.outgoing.keys()])];
|
|
471
732
|
}
|
|
472
733
|
}
|
|
473
734
|
//# sourceMappingURL=app-wake.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-wake.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-wake.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AAEzF,MAAM,CAAC,GAAG,qBAAqB,CAAC;AAuEhC,uHAAuH;AACvH,SAAS,YAAY,CAAI,OAAmB,EAAE,EAAU,EAAE,SAAkB;IAC1E,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC;gBACH,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACpD,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sDAAsD;AACtD,MAAM,iBAAkB,SAAQ,KAAK;IACnC,YAAY,EAAU;QACpB,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAOD,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,cAAc;IA0BI;IAzBZ,GAAG,CAAe;IAClB,MAAM,CAAkB;IACjC,KAAK,GAAyC,IAAI,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAyB,IAAI,CAAC;IAC7C,mGAAmG;IAC3F,aAAa,GAAG,CAAC,CAAC;IAClB,UAAU,GAAG,CAAC,CAAC;IACf,iBAAiB,GAAG,KAAK,CAAC;IAClC,+FAA+F;IAC9E,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxD,wDAAwD;IACvC,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpD,oGAAoG;IACnF,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpC,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxD,4EAA4E;IAC3D,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,4DAA4D;IAC3C,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACzD,6EAA6E;IAC5D,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAElD,YAA6B,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,qDAAqD;IACrD,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,gHAAgH;IAChH,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAAE,IAAI,CAAC,CAAC,KAAK;gBAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1G,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,sEAAsE;YACtE,0DAA0D;YAC1D,KAAK,YAAY,CAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;iBACxE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC5H,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACnD,IAAI,UAAU,GAAG,CAAC,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6EAA6E,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9H,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,SAAS,CACZ,0DAA0D,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,0BAA0B;oBACjH,4GAA4G,CAC/G,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,GAAkB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACzD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC;QACX,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,YAAY,CAA4B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACzH,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7F,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;YACvC,OAAO,GAAG,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAqB;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,YAAY,CAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC9E,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACjF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3J,CAAC;gBAAS,CAAC;YACT,oGAAoG;YACpG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,KAAa;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IAC9C,CAAC;IAEO,YAAY,CAAC,GAAqB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAqB,EAAE,KAAa;QACxD,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,uBAAuB,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpD,sDAAsD;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAc,KAAK,EAAE,SAAS,GAAG,CAAC,KAAK,UAAU,EAAE,IAAI,CAAC,CAAC;YACpG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,OAAO;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAc,KAAK,EAAE,SAAS,GAAG,CAAC,KAAK,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrI,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,OAAO;YAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpH,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY;gBAAE,MAAM;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe,CAAC,KAAa;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;gBAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,GAAG;YAAE,IAAI,GAAG,IAAI,IAAI;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,kBAAkB;YAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK;QACX,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,GAAqD;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YAC3B,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC1J,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACrB,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC;YACf,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,GAAqB;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW;YAAE,OAAO;QACtE,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,SAAS,OAAO,IAAI,aAAa,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACjF,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5F,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAEO,QAAQ,CAAC,KAAa,EAAE,OAAsB,EAAE,QAAiB,EAAE,QAAgB;QACzF,OAAO;YACL,KAAK;YACL,OAAO;YACP,QAAQ;YACR,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,EAAE;YACR,QAAQ;YACR,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAqB,EAAE,MAAiB;QACjE,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAChF,gEAAgE;YAChE,IAAI,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACnH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,GAAqB,EAAE,MAAiB;QAC3D,0EAA0E;QAC1E,qCAAqC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO;QACvD,uEAAuE;QACvE,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK;gBAAE,OAAO;QAC9E,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,qEAAqE;YACrE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9B,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,QAAQ;gBAAE,OAAO;QAChE,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,wEAAwE;YACxE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3C,EAAE,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,8DAA8D;gBAC9D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,wEAAwE;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,IAAI,aAAa,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7E,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;YAC5C,IAAI,KAAK,CAAC,aAAa;gBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,sBAAsB;gBAAE,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC3F,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY;gBAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9E,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,mBAAmB;gBAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,sBAAsB;gBAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,GAAG,CAAC,GAAW,EAAE,KAAY,EAAE,KAAa;QAClD,IAAI,KAAK,CAAC,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;gBACtD,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvB,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,6FAA6F;IACrF,MAAM,CAAC,WAAW,CAAC,KAAY;QACrC,OAAO,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,wEAAwE;IAChE,MAAM,CAAC,KAAK,CAAC,IAAW,EAAE,IAAW;QAC3C,MAAM,IAAI,GAAG,CAAI,IAAS,EAAE,GAAW,EAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5G,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACvG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAEnB,wEAAwE;QACxE,yEAAyE;QACzE,WAAW;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uEAAuE;QACvE,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9H,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC7F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,KAAK,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,KAAK,CAAC,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,KAAY;QAC1C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAExE,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC;QACzE,MAAM,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI;YAAE,KAAK,CAAC,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QACpC,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACnF,mDAAmD;YACnD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,mBAAmB,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK;YACjC,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO;YAC1D,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,cAAc,EAAE,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;SACjC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACxH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,OAAO,GAAqB,OAAO,CAAC,OAAO,EAAE;aAChD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5I,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpJ,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,MAAM,YAAY,CAChC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC5C,CAAC,CAAC,uBAAuB,EACzB,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,oBAAoB;QAExE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;gBACrE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc;gBACxC,SAAS,EAAE,CAAC,CAAC,uBAAuB;aACrC,CAAC,CAAC;YACH,wEAAwE;YACxE,oEAAoE;YACpE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACvB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ;oBAAE,OAAO;gBACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC,CAAC;gBACpI,IAAI,KAAK,CAAC,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAChL,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACrG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,SAAS,CACZ,iCAAiC,WAAW,CAAC,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,8BAA8B;gBACnH,GAAG,KAAK,CAAC,OAAO,UAAU,KAAK,CAAC,QAAQ,iFAAiF,CAC5H,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,KAAY,EAAE,GAA4B,EAAE,MAA+B,EAAE,OAAe;QAC/H,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxF,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YAClE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc;YACxC,WAAW,EAAE,KAAK,CAAC,SAAS;YAC5B,MAAM,EAAE,KAAK,CAAC,WAAW;YACzB,QAAQ,EAAE,KAAK,CAAC,aAAa;YAC7B,kBAAkB,EAAE,KAAK,CAAC,YAAY;YACtC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IAC/D,SAAS,CAAC,IAAY;QAC5B,KAAK,YAAY,CACf,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EACrB,CAAC,CAAC,uBAAuB,EACzB,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC,CAAC;gBAC9H,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa;gBAAE,SAAS;YACvE,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC,CAAC,oBAAoB;gBAAE,SAAS;YAC7C,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;gBACvE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc;gBACxC,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,aAAa;gBAC7B,WAAW,EAAE,KAAK,CAAC,SAAS;gBAC5B,MAAM,EAAE,KAAK,CAAC,WAAW;aAC1B,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CACZ,gDAAgD,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,gBAAgB,KAAK,CAAC,SAAS,mBAAmB;oBACnI,GAAG,KAAK,CAAC,WAAW,4BAA4B,OAAO,iBAAiB,KAAK,CAAC,OAAO,yBAAyB;oBAC9G,oCAAoC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.wiring.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/apps.wiring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"apps.wiring.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/apps.wiring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,0CAA0C;AAC1C,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAExD,UAAU,SAAS;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAWD;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIhE;AAaD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAK/F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWrH;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAe/B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,eAA8B,GAAG,SAAS,CAoB7E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,yCAAyC;IACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,4CAA4C;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,6BAA6B;IAC7B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAoBrE;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|