@avernet-plugin/deepseek-harness-channel-bcn 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bridge.js CHANGED
@@ -4,6 +4,7 @@ import { asNonEmptyString, asRecord, extractMessageText, parseChatInjectParams,
4
4
  import { createBcsRouteTool } from './route-tool.js';
5
5
  import { dshSessionIdForV2, resolveBcnSessionIdentity } from './session-identity.js';
6
6
  import { createBcsAssignTaskTool, createBcsSendTaskMessageTool, createBcsTaskCompleteTool, } from './task-tools.js';
7
+ import { BcnInteractions } from './interactions.js';
7
8
  export class BcnBridge {
8
9
  ctx;
9
10
  client;
@@ -19,14 +20,20 @@ export class BcnBridge {
19
20
  completedRunIds = [];
20
21
  disposers = [];
21
22
  disposed = false;
23
+ interactions;
22
24
  constructor(ctx, client, config, log) {
23
25
  this.ctx = ctx;
24
26
  this.client = client;
25
27
  this.config = config;
26
28
  this.log = log;
29
+ this.interactions = new BcnInteractions(client, agent => {
30
+ const id = this.activeRunBySessionId.get(String(agent.id));
31
+ const run = id ? this.runs.get(id) : undefined;
32
+ return run && !run.terminal ? run : undefined;
33
+ });
27
34
  }
28
35
  start() {
29
- this.disposers.push(this.client.onRequest('chat.send', frame => this.handleChatSend(frame)), this.client.onRequest('chat.inject', frame => this.handleChatInject(frame)), this.ctx.on('agent/inbox/claimed', payload => this.handleInboxClaimed(payload)), this.ctx.on('agent/inbox/discarded', payload => this.handleInboxDiscarded(payload)), this.ctx.on('session/event', (session, event) => this.handleSessionEvent(session, event)));
36
+ this.disposers.push(this.client.onRequest('chat.send', frame => this.handleChatSend(frame)), this.client.onRequest('chat.inject', frame => this.handleChatInject(frame)), this.client.onRequest('chat.abort', frame => this.handleChatAbort(frame)), this.client.onRequest('interaction.resolve', frame => this.interactions.resolve(frame)));
30
37
  }
31
38
  get busy() {
32
39
  for (const run of this.runs.values())
@@ -38,15 +45,17 @@ export class BcnBridge {
38
45
  if (this.disposed)
39
46
  return;
40
47
  this.disposed = true;
48
+ this.interactions.dispose();
41
49
  for (const dispose of this.disposers.splice(0).reverse())
42
50
  await dispose();
43
51
  for (const run of this.runs.values()) {
44
52
  if (run.terminal)
45
53
  continue;
54
+ this.sendTerminal(run, 'aborted');
46
55
  const agent = this.ctx.agents.get(run.sessionId);
47
56
  agent?.cancel({ kind: 'disposed' });
48
57
  }
49
- await Promise.allSettled([...this.ownedAgents].map(handle => handle.dispose()));
58
+ const results = await Promise.allSettled([...this.ownedAgents].map(handle => handle.dispose()));
50
59
  this.ownedAgents.clear();
51
60
  this.managedAgents.clear();
52
61
  this.sessionIdentityBySessionId.clear();
@@ -54,6 +63,9 @@ export class BcnBridge {
54
63
  this.runIdByTurn.clear();
55
64
  this.activeRunBySessionId.clear();
56
65
  this.runs.clear();
66
+ const failures = results.filter((result) => result.status === 'rejected');
67
+ if (failures.length)
68
+ throw new AggregateError(failures.map(result => result.reason), 'BCN agent disposal failed');
57
69
  }
58
70
  async captureRoute(agent, selectors, reason, signal) {
59
71
  if (!agent)
@@ -123,7 +135,9 @@ export class BcnBridge {
123
135
  return taskToolInvalid("'response_mode' must be 'after-last-tool-call' or 'full'.");
124
136
  }
125
137
  const params = {
126
- group_id: run.groupId,
138
+ // task.* accepts the session-shaped group_id wire representation.
139
+ // A bare V3 group id would lose the originating conversation.
140
+ group_id: run.bcsSessionId,
127
141
  target_bot: normalizedTarget,
128
142
  message: normalizedMessage,
129
143
  ...(responseMode ? { response_mode: responseMode } : {}),
@@ -149,7 +163,7 @@ export class BcnBridge {
149
163
  if (!normalizedMessage)
150
164
  return taskToolInvalid("'message' must be a non-empty string.");
151
165
  const response = await this.sendTaskRequest('task.message', {
152
- group_id: run.groupId,
166
+ group_id: run.bcsSessionId,
153
167
  message: normalizedMessage,
154
168
  }, signal);
155
169
  if (!response.ok)
@@ -165,7 +179,7 @@ export class BcnBridge {
165
179
  if (!normalizedSummary)
166
180
  return taskToolInvalid("'summary' must be a non-empty string.");
167
181
  const response = await this.sendTaskRequest('task.complete', {
168
- group_id: run.groupId,
182
+ group_id: run.bcsSessionId,
169
183
  summary: normalizedSummary,
170
184
  }, signal);
171
185
  if (!response.ok)
@@ -181,16 +195,25 @@ export class BcnBridge {
181
195
  this.client.sendResponse(frame.id, false, undefined, invalidRequest(error));
182
196
  return;
183
197
  }
198
+ const bcsSessionId = params.bcs_session_id?.trim();
199
+ if (!bcsSessionId) {
200
+ this.client.sendResponse(frame.id, false, undefined, invalidRequest('BCN V3 chat.send requires bcs_session_id'));
201
+ return;
202
+ }
184
203
  const runId = params.idempotency_key ?? frame.id;
185
204
  const existing = this.runs.get(runId);
186
205
  if (existing) {
206
+ if (existing.bcsSessionId !== bcsSessionId) {
207
+ this.client.sendResponse(frame.id, false, undefined, invalidRequest('run_id belongs to another bcs_session_id'));
208
+ return;
209
+ }
187
210
  this.client.sendResponse(frame.id, true, { run_id: existing.runId });
188
211
  return;
189
212
  }
190
213
  const sessionIdentity = resolveBcnSessionIdentity({
191
214
  sessionKey: params.session_key,
192
215
  groupId: params.bcs_group_id,
193
- ...(params.bcs_session_id ? { bcsSessionId: params.bcs_session_id } : {}),
216
+ bcsSessionId,
194
217
  });
195
218
  const sessionId = dshSessionIdForV2(sessionIdentity);
196
219
  const toolProfile = resolveToolProfile(params.session_context);
@@ -198,12 +221,13 @@ export class BcnBridge {
198
221
  runId,
199
222
  sessionId,
200
223
  groupId: params.bcs_group_id,
201
- ...(params.bcs_session_id ? { bcsSessionId: params.bcs_session_id } : {}),
224
+ bcsSessionId,
202
225
  text: '',
203
226
  stepText: new Map(),
204
227
  terminal: false,
205
228
  usage: { input: 0, output: 0 },
206
229
  toolNames: new Map(),
230
+ toolArguments: new Map(),
207
231
  toolStarts: new Set(),
208
232
  toolResults: new Set(),
209
233
  pendingToolResults: new Map(),
@@ -213,11 +237,14 @@ export class BcnBridge {
213
237
  this.client.sendResponse(frame.id, true, { run_id: runId });
214
238
  try {
215
239
  const managed = await this.getOrCreateAgent(sessionIdentity, toolProfile);
240
+ if (this.disposed || run.terminal)
241
+ return;
216
242
  const message = createUserMessage({
217
243
  content: [{ type: 'text', text: formatInboundMessage(params) }],
218
- source: { kind: 'plugin', plugin: 'deepseek-harness-channel-bcn', form: 'relay' },
244
+ source: { kind: 'bcn-channel' },
219
245
  });
220
246
  this.runIdByMessageId.set(String(message.id), runId);
247
+ run.messageId = message.id;
221
248
  managed.agent.followup(message);
222
249
  }
223
250
  catch {
@@ -228,6 +255,8 @@ export class BcnBridge {
228
255
  let params;
229
256
  try {
230
257
  params = parseChatInjectParams(frame.params);
258
+ if (!params.bcs_session_id?.trim())
259
+ throw new Error('BCN V3 chat.inject requires bcs_session_id');
231
260
  }
232
261
  catch (error) {
233
262
  this.client.sendResponse(frame.id, false, undefined, invalidRequest(error));
@@ -242,7 +271,7 @@ export class BcnBridge {
242
271
  const managed = await this.getOrCreateAgent(sessionIdentity, resolveToolProfile(params.session_context));
243
272
  managed.agent.inject(createUserMessage({
244
273
  content: [{ type: 'text', text: formatInboundMessage(params) }],
245
- source: { kind: 'plugin', plugin: 'deepseek-harness-channel-bcn', form: 'relay' },
274
+ source: { kind: 'bcn-channel' },
246
275
  }));
247
276
  this.client.sendResponse(frame.id, true, {});
248
277
  }
@@ -254,12 +283,43 @@ export class BcnBridge {
254
283
  });
255
284
  }
256
285
  }
286
+ async handleChatAbort(frame) {
287
+ const params = asRecord(frame.params);
288
+ const sessionId = asNonEmptyString(params?.session_key);
289
+ const runId = asNonEmptyString(params?.run_id);
290
+ if (!sessionId || !runId) {
291
+ this.client.sendResponse(frame.id, false, undefined, invalidRequest('chat.abort requires session_key and run_id'));
292
+ return;
293
+ }
294
+ const run = this.runs.get(runId);
295
+ if (!run || run.bcsSessionId !== sessionId) {
296
+ this.client.sendResponse(frame.id, false, undefined, {
297
+ code: run ? 'SCOPE_MISMATCH' : 'RUN_NOT_FOUND',
298
+ message: run ? 'run_id does not belong to session_key' : 'Unknown run_id',
299
+ retryable: false,
300
+ });
301
+ return;
302
+ }
303
+ if (run.terminal) {
304
+ this.client.sendResponse(frame.id, true, { aborted: false, aborted_run_ids: [] });
305
+ return;
306
+ }
307
+ // Mark terminal before awaiting anything, including agent creation.
308
+ // An acknowledged but not yet delivered run must never start afterwards.
309
+ this.sendTerminal(run, 'aborted');
310
+ const agent = this.ctx.agents.get(run.sessionId);
311
+ if (run.turn !== undefined)
312
+ agent?.cancel({ kind: 'user' }, { keepInbox: true });
313
+ else if (run.messageId)
314
+ agent?.inbox.remove(run.messageId);
315
+ this.client.sendResponse(frame.id, true, { aborted: true, aborted_run_ids: [runId] });
316
+ }
257
317
  handleInboxClaimed(payload) {
258
318
  const runId = this.runIdByMessageId.get(String(payload.message.id));
259
319
  if (!runId)
260
320
  return;
261
321
  const run = this.runs.get(runId);
262
- if (!run || run.sessionId !== payload.agent.id)
322
+ if (!run || run.terminal || run.sessionId !== payload.agent.id)
263
323
  return;
264
324
  this.runIdByMessageId.delete(String(payload.message.id));
265
325
  run.turn = payload.turn;
@@ -287,15 +347,10 @@ export class BcnBridge {
287
347
  const run = runId ? this.runs.get(runId) : undefined;
288
348
  if (!run || run.terminal)
289
349
  return;
290
- if (event.type === 'assistant/chunk') {
291
- const chunk = event.data.chunk;
292
- if (chunk.type !== 'text-delta' || !chunk.text)
293
- return;
294
- this.appendDelta(run, event.data.step, chunk.text);
295
- return;
296
- }
297
350
  if (event.type === 'assistant/message') {
298
351
  this.captureAssistantMessage(run, event.data.step, event.data.message.content, event.data.usage);
352
+ if (run.liveAttempt?.step === event.data.step)
353
+ delete run.liveAttempt;
299
354
  return;
300
355
  }
301
356
  if (event.type === 'tool/call') {
@@ -303,11 +358,10 @@ export class BcnBridge {
303
358
  return;
304
359
  }
305
360
  if (event.type === 'tool/result') {
306
- const block = event.data.message.content[0];
307
361
  this.captureToolResult(run, {
308
- callId: String(block.toolCallId),
309
- content: block.content,
310
- isError: block.isError === true || event.data.error !== undefined,
362
+ callId: String(event.data.message.toolCallId),
363
+ content: event.data.message.content,
364
+ isError: event.data.message.isError === true || event.data.error !== undefined,
311
365
  });
312
366
  return;
313
367
  }
@@ -325,14 +379,35 @@ export class BcnBridge {
325
379
  }
326
380
  }
327
381
  }
382
+ handleAssistantStream(agent, frame) {
383
+ const runId = frame.type === 'start'
384
+ ? this.runIdByTurn.get(turnKey(agent.id, frame.turn))
385
+ : this.activeRunBySessionId.get(String(agent.id));
386
+ const run = runId ? this.runs.get(runId) : undefined;
387
+ if (!run || run.terminal)
388
+ return;
389
+ if (frame.type === 'start') {
390
+ run.liveAttempt = { attemptId: String(frame.attemptId), revision: frame.revision, step: frame.step, text: '' };
391
+ }
392
+ else {
393
+ const attempt = run.liveAttempt;
394
+ if (!attempt || attempt.attemptId !== String(frame.attemptId) || attempt.revision !== frame.revision)
395
+ return;
396
+ if (frame.type === 'chunk' && frame.chunk.type === 'text-delta')
397
+ attempt.text += frame.chunk.text;
398
+ else if (frame.type === 'end')
399
+ delete run.liveAttempt;
400
+ }
401
+ }
328
402
  appendDelta(run, step, text) {
329
403
  run.text += text;
330
404
  run.stepText.set(step, `${run.stepText.get(step) ?? ''}${text}`);
331
- this.client.sendEvent('chat.event', {
332
- run_id: run.runId,
333
- bcs_group_id: run.groupId,
405
+ this.client.sendEvent('chat', {
406
+ runId: run.runId,
407
+ sessionId: run.bcsSessionId,
408
+ ts: Date.now(),
334
409
  state: 'delta',
335
- delta_text: text,
410
+ content: text,
336
411
  });
337
412
  }
338
413
  captureAssistantMessage(run, step, content, usage) {
@@ -362,12 +437,16 @@ export class BcnBridge {
362
437
  catch {
363
438
  // Preserve the provider's raw argument string when it is not complete JSON.
364
439
  }
440
+ run.toolArguments.set(callId, args);
365
441
  this.client.sendEvent('agent', {
366
- run_id: run.runId,
367
- bcs_group_id: run.groupId,
442
+ runId: run.runId,
443
+ sessionId: run.bcsSessionId,
368
444
  stream: 'tool',
369
445
  ts: Date.now(),
370
- data: { phase: 'start', toolCallId: callId, name, args },
446
+ phase: 'start',
447
+ toolCallId: callId,
448
+ name,
449
+ args,
371
450
  });
372
451
  run.toolStarts.add(callId);
373
452
  const pending = run.pendingToolResults.get(callId);
@@ -388,39 +467,48 @@ export class BcnBridge {
388
467
  sendToolResult(run, result) {
389
468
  if (run.toolResults.has(result.callId))
390
469
  return;
470
+ const name = run.toolNames.get(result.callId);
471
+ if (!name)
472
+ return;
391
473
  this.client.sendEvent('agent', {
392
- run_id: run.runId,
393
- bcs_group_id: run.groupId,
474
+ runId: run.runId,
475
+ sessionId: run.bcsSessionId,
394
476
  stream: 'tool',
395
477
  ts: Date.now(),
396
- data: {
397
- phase: 'result',
398
- toolCallId: result.callId,
399
- name: run.toolNames.get(result.callId) ?? 'unknown',
400
- result: { content: result.content },
401
- isError: result.isError,
402
- },
478
+ phase: 'result',
479
+ toolCallId: result.callId,
480
+ name,
481
+ result: { content: result.content },
482
+ isError: result.isError,
403
483
  });
404
484
  run.toolResults.add(result.callId);
405
485
  }
406
486
  sendTerminal(run, state, errorCode, stopReason) {
407
487
  if (run.terminal)
408
488
  return;
409
- for (const pending of run.pendingToolResults.values())
410
- this.sendToolResult(run, pending);
489
+ this.interactions.cancelRun(run.runId);
490
+ if (state === 'aborted' && run.liveAttempt?.text) {
491
+ this.captureAssistantMessage(run, run.liveAttempt.step, [{ type: 'text', text: run.liveAttempt.text }], undefined);
492
+ }
493
+ delete run.liveAttempt;
494
+ if (run.pendingToolResults.size)
495
+ this.log?.warn('BCN run ended with unmatched tool results; no fabricated tool identity was emitted');
411
496
  run.pendingToolResults.clear();
412
497
  const payload = {
413
- run_id: run.runId,
414
- bcs_group_id: run.groupId,
498
+ runId: run.runId,
499
+ sessionId: run.bcsSessionId,
500
+ ts: Date.now(),
415
501
  state,
416
502
  };
503
+ if (run.text)
504
+ payload.content = run.text;
417
505
  if (state === 'final') {
418
506
  if (run.text)
419
- payload.message = assistantMessage(run.text);
507
+ payload.content = run.text;
420
508
  if (run.usage.input || run.usage.output)
421
509
  payload.usage = run.usage;
422
510
  if (stopReason)
423
- payload.stop_reason = stopReason;
511
+ payload.stopReason = stopReason;
424
512
  if (run.route)
425
513
  payload.routing = routeWire(run.route);
426
514
  }
@@ -430,13 +518,24 @@ export class BcnBridge {
430
518
  payload.errorCode = errorCode ?? 'UNKNOWN';
431
519
  }
432
520
  else {
433
- payload.stop_reason = 'aborted';
521
+ payload.stopReason = 'aborted';
434
522
  }
435
- this.client.sendEvent('chat.event', payload);
523
+ this.client.sendEvent('chat', payload);
436
524
  run.terminal = true;
437
- this.activeRunBySessionId.delete(String(run.sessionId));
525
+ if (this.activeRunBySessionId.get(String(run.sessionId)) === run.runId) {
526
+ this.activeRunBySessionId.delete(String(run.sessionId));
527
+ }
528
+ if (run.messageId)
529
+ this.runIdByMessageId.delete(String(run.messageId));
438
530
  if (run.turn !== undefined)
439
531
  this.runIdByTurn.delete(turnKey(run.sessionId, run.turn));
532
+ run.text = '';
533
+ run.stepText.clear();
534
+ run.toolArguments.clear();
535
+ run.toolNames.clear();
536
+ run.toolStarts.clear();
537
+ run.toolResults.clear();
538
+ delete run.route;
440
539
  this.completedRunIds.push(run.runId);
441
540
  while (this.completedRunIds.length > 2_000) {
442
541
  const oldest = this.completedRunIds.shift();
@@ -465,21 +564,33 @@ export class BcnBridge {
465
564
  if (this.ctx.agents.get(sessionId)) {
466
565
  throw new Error('A non-BCN DSH agent already owns the derived BCN session id');
467
566
  }
468
- const persistedHeader = (await this.ctx.sessionPersistence.list()).find(header => header.id === sessionId);
567
+ const persistedHeader = await this.ctx.sessionPersistence.stat(sessionId);
469
568
  const cwd = process.cwd();
470
569
  const bcnCtx = this.ctx;
471
570
  const defaultSelection = bcnCtx.agentDefaultModel.currentSelection();
472
- const recordedPreset = persistedHeader
473
- ? presetForInspection(await this.ctx.sessionPersistence.inspect(sessionId))
474
- : undefined;
571
+ let recordedPreset;
572
+ if (persistedHeader) {
573
+ const reader = await this.ctx.sessionPersistence.open(sessionId, 'read');
574
+ try {
575
+ recordedPreset = presetForInspection({ meta: reader.header, events: (await reader.read()).events });
576
+ }
577
+ finally {
578
+ await reader.close();
579
+ }
580
+ }
475
581
  const presetId = (await bcnCtx.agentPresets.resolve(recordedPreset)).id;
476
- const setup = async (agentCtx) => {
582
+ const setup = async (agentCtx, agent) => {
583
+ agentCtx.on('agent/inbox/claimed', payload => this.handleInboxClaimed(payload));
584
+ agentCtx.on('agent/inbox/discarded', payload => this.handleInboxDiscarded(payload));
585
+ agentCtx.on('session/event', (session, event) => this.handleSessionEvent(session, event));
586
+ agentCtx.on('agent/assistant-stream', ({ agent: owner, frame }) => this.handleAssistantStream(owner, frame));
477
587
  installModelSelection(agentCtx, {
478
- current: selectionForSession(agentCtx.agent, defaultSelection),
588
+ current: selectionForSession(agent, defaultSelection),
479
589
  assembled: undefined,
480
590
  });
481
- agentCtx.systemPrompt.variable('cwd', () => agentCtx.agent?.session.header.cwd ?? cwd);
591
+ agentCtx.systemPrompt.variable('cwd', () => agent.session.header.cwd ?? cwd);
482
592
  await bcnCtx.agentPresets.mount(agentCtx, presetId);
593
+ this.interactions.mount(agentCtx, agent);
483
594
  if (toolProfile === 'route') {
484
595
  agentCtx.tools.register(createBcsRouteTool(this));
485
596
  }
@@ -494,6 +605,7 @@ export class BcnBridge {
494
605
  const agentOptions = {
495
606
  provider: defaultSelection.provider,
496
607
  model: defaultSelection.model,
608
+ ...(defaultSelection.reasoningEffort ? { reasoningEffort: defaultSelection.reasoningEffort } : {}),
497
609
  };
498
610
  const handle = persistedHeader
499
611
  ? await this.ctx.agents.resume({ resumeSessionId: sessionId, agentOptions, setup })
@@ -504,6 +616,10 @@ export class BcnBridge {
504
616
  setup,
505
617
  });
506
618
  const managed = { sessionIdentity, sessionId, agent: handle.agent, handle, toolProfile };
619
+ if (this.disposed) {
620
+ await handle.dispose();
621
+ throw new Error('BCN plugin was disposed during agent creation');
622
+ }
507
623
  this.ownedAgents.add(handle);
508
624
  this.sessionIdentityBySessionId.set(String(sessionId), sessionIdentity);
509
625
  return managed;
@@ -583,7 +699,7 @@ function resolveToolProfile(sessionContext) {
583
699
  function formatInboundMessage(params) {
584
700
  const text = extractMessageText(params.message);
585
701
  const metadata = {
586
- protocol_version: 2,
702
+ protocol_version: 3,
587
703
  bcs_group_id: params.bcs_group_id,
588
704
  ...(params.bcs_session_id ? { bcs_session_id: params.bcs_session_id } : {}),
589
705
  channel: params.channel,
@@ -593,9 +709,6 @@ function formatInboundMessage(params) {
593
709
  };
594
710
  return `<bcn_context>\n${JSON.stringify(metadata)}\n</bcn_context>\n\n${text}`;
595
711
  }
596
- function assistantMessage(text) {
597
- return { role: 'assistant', content: [{ type: 'text', text }], timestamp: Date.now() };
598
- }
599
712
  function visibleText(content) {
600
713
  return content.flatMap(block => block.type === 'text' ? [block.text] : []).join('');
601
714
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,GAItB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAsC,MAAM,sBAAsB,CAAC;AAI7F,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GAQpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAwDzB,MAAM,OAAO,SAAS;IAaD;IACA;IACA;IACA;IAfX,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IACzD,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,0BAA0B,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IACrC,eAAe,GAAa,EAAE,CAAC;IAC/B,SAAS,GAAyB,EAAE,CAAC;IACrC,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACmB,GAAY,EACZ,MAAmB,EACnB,MAAc,EACd,GAKhB;QARgB,QAAG,GAAH,GAAG,CAAS;QACZ,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAKnB;IACA,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAC3E,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAC/E,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EACnF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,MAAM,OAAO,EAAE,CAAC;QAC1E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAwB,EACxB,SAA0B,EAC1B,MAAc,EACd,MAAmB;QAEnB,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;QACpG,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;QAC1F,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACjF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;QAC5F,CAAC;QACD,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;YAC3G,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;QAE3G,MAAM,MAAM,GAA4B,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzF,IAAI,GAAG,CAAC,YAAY;YAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,sBAAsB;gBACrD,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,sCAAsC;aAC3E,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,sBAAsB;gBACjE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,sCAAsC;gBACrF,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC;aACjD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAuB;YACnC,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACtC,WAAW,EAAE,KAAK;SACnB,CAAC;QACF,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAAwB,EACxB,SAAiB,EACjB,OAAe,EACf,YAAgC,EAChC,MAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,mBAAmB,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5C,OAAO,eAAe,CAAC,uDAAuD,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,sBAAsB,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YACrG,OAAO,eAAe,CAAC,2DAA2D,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,MAAM,GAA4B;YACtC,QAAQ,EAAE,GAAG,CAAC,OAAO;YACrB,UAAU,EAAE,gBAAgB;YAC5B,OAAO,EAAE,iBAAiB;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,YAAY;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAwB,EACxB,OAAe,EACf,MAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO,mBAAmB,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB;YAAE,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAC;QAExF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;YAC1D,QAAQ,EAAE,GAAG,CAAC,OAAO;YACrB,OAAO,EAAE,iBAAiB;SAC3B,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAwB,EACxB,OAAe,EACf,MAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,mBAAmB,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB;YAAE,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAC;QAExF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;YAC3D,QAAQ,EAAE,GAAG,CAAC,OAAO;YACrB,OAAO,EAAE,iBAAiB;SAC3B,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC9E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAmB;QAC9C,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,yBAAyB,CAAC;YAChD,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAe;YACtB,KAAK;YACL,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YAC9B,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,UAAU,EAAE,IAAI,GAAG,EAAE;YACrB,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,kBAAkB,EAAE,IAAI,GAAG,EAAE;YAC7B,WAAW;SACZ,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC;gBAChC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;aAClF,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAmB;QAChD,IAAI,MAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,yBAAyB,CAAC;gBAChD,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,OAAO,EAAE,MAAM,CAAC,YAAY;gBAC5B,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACzC,eAAe,EACf,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAC3C,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACrC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,8BAA8B,EAAE,IAAI,EAAE,OAAO,EAAE;aAClF,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnD,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,mDAAmD;gBAC5D,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAiE;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,oBAAoB,CAAC,OAAmD;QAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,GAAG;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,kBAAkB,CAAC,OAAgB,EAAE,KAAmB;QAC9D,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO;QACtF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO;QAEjC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO;YACvD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjG,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBAC1B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;aAClE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;iBACvE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;oBAC7C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC7C,CAAC,CAAC,aAAa,CAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAAY;QAC7D,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QACjB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,KAAK;YACjB,YAAY,EAAE,GAAG,CAAC,OAAO;YACzB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAC7B,GAAe,EACf,IAAY,EACZ,OAAuB,EACvB,KAA6B;QAE7B,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;YACpG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO;QACjD,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAe,EAAE,MAAc,EAAE,IAAY,EAAE,YAAoB;QACzF,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACvC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,GAAY,YAAY,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;QAC9E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;YAC7B,MAAM,EAAE,GAAG,CAAC,KAAK;YACjB,YAAY,EAAE,GAAG,CAAC,OAAO;YACzB,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;SACzD,CAAC,CAAC;QACH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,GAAe,EAAE,MAA0B;QACnE,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAEO,cAAc,CAAC,GAAe,EAAE,MAA0B;QAChE,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;YAC7B,MAAM,EAAE,GAAG,CAAC,KAAK;YACjB,YAAY,EAAE,GAAG,CAAC,OAAO;YACzB,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS;gBACnD,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,YAAY,CAClB,GAAe,EACf,KAAoC,EACpC,SAAkB,EAClB,UAAmB;QAEnB,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO;QACzB,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzF,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,OAAO,GAA4B;YACvC,MAAM,EAAE,GAAG,CAAC,KAAK;YACjB,YAAY,EAAE,GAAG,CAAC,OAAO;YACzB,KAAK;SACN,CAAC;QACF,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACnE,IAAI,UAAU;gBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACjD,IAAI,GAAG,CAAC,KAAK;gBAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,GAAG,6BAA6B,CAAC;YACrD,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;YAC/B,OAAO,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,eAAuB,EAAE,WAA2B;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;YAC/B,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,eAAuB,EAAE,WAA2B;QAC5E,MAAM,SAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAsB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QACrE,MAAM,cAAc,GAAG,eAAe;YACpC,CAAC,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,KAAK,EAAE,QAAiB,EAAE,EAAE;YACxC,qBAAqB,CAAC,QAAQ,EAAE;gBAC9B,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBAC9D,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACF,QAA4B,CAAC,YAAY,CAAC,QAAQ,CACjD,KAAK,EACL,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAChD,CAAC;YACF,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC;QACF,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK;SAC9B,CAAC;QACF,MAAM,MAAM,GAAG,eAAe;YAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YACnF,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7B,SAAS;gBACT,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACpC,YAAY;gBACZ,KAAK;aACN,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACzF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,oBAAoB,CAC1B,KAAwB,EACxB,eAAqC;QAErC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,MAA0D,EAC1D,MAA+B,EAC/B,MAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,qBAAqB;gBACzB,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,iCAAiC;oBAC1C,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,sBAAsB;gBAC1B,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,0BAA0B;oBACnC,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,UAG5B;IACC,KAAK,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,IAAI,KAAK,uBAAuB;YAAE,SAAS;QACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAwB,EAAE,QAAwB;IAC7E,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/B,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,cAAuC;IACjE,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnC,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,aAAa,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACxF,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAyC;IACrE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG;QACf,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,MAAM,CAAC,eAAe;QACrC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;IACF,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,IAAI,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,SAAoB,EAAE,IAAY;IACjD,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;QACvE,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,kEAAkE;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,2BAA2B,MAAM,YAAY;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAyD,EACzD,YAAoB;IAEpB,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,YAAY;QAC3C,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,gCAAgC;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,IAAI,KAAK,KAAK,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAwC,EACxC,QAA4B;IAE5B,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE;YAAE,MAAM;QAC5C,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,QAAQ,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,MAA0B;IAC3C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,11 @@ export interface ConfigureProfileResult {
15
15
  endpoint: string;
16
16
  }
17
17
  export declare function configureProfile(options: ConfigureProfileOptions, dependencies?: ConfigureProfileDependencies): ConfigureProfileResult;
18
+ interface CliOptions {
19
+ profile: string;
20
+ endpoint: string;
21
+ botName: string;
22
+ }
23
+ export declare function parseArgs(args: string[]): CliOptions;
24
+ export {};
18
25
  //# sourceMappingURL=configure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":";AAyCA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,4BAAiC,GAC9C,sBAAsB,CA4ExB"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":";AAyCA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,EAChC,YAAY,GAAE,4BAAiC,GAC9C,sBAAsB,CA4ExB;AA2ED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoBpD"}
package/dist/configure.js CHANGED
@@ -173,7 +173,10 @@ function validateWithDsh(profile, dshHome, dshBin) {
173
173
  function isRecord(value) {
174
174
  return typeof value === 'object' && value !== null && !Array.isArray(value);
175
175
  }
176
- function parseArgs(args) {
176
+ export function parseArgs(args) {
177
+ // Newer DSH/pnpm exec forwards its separator to the executable.
178
+ if (args[0] === '--')
179
+ args = args.slice(1);
177
180
  const values = new Map();
178
181
  for (let index = 0; index < args.length; index += 1) {
179
182
  const option = args[index];