tellrun 1.3.8 → 1.3.9

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.
@@ -1,4 +1,5 @@
1
1
  import { execFile } from "node:child_process";
2
+ import { randomUUID } from "node:crypto";
2
3
  import { connect } from "node:net";
3
4
  import { homedir } from "node:os";
4
5
  import { delimiter, dirname, join } from "node:path";
@@ -6,6 +7,7 @@ import { promisify } from "node:util";
6
7
  import { JSONRPCErrorException } from "json-rpc-2.0";
7
8
  import WebSocket from "ws";
8
9
  import { z } from "zod";
10
+ import { createCodexInput } from "./codex-input.js";
9
11
  import { fileChangesSchema, parseCodexInteraction, } from "./codex-interaction.js";
10
12
  import { createCodexRpc } from "./codex-rpc.js";
11
13
  /** 由 Codex 0.165.0 的 generate-ts 核对;只校验实际消费的协议字段。 */
@@ -13,6 +15,23 @@ const turnSchema = z.object({
13
15
  id: z.string().min(1),
14
16
  status: z.enum(["inProgress", "completed", "failed", "interrupted"]),
15
17
  });
18
+ /** 创建、列表和读取会话共用元数据校验;空标题回退到首条消息摘要。 */
19
+ const sessionSchema = z
20
+ .object({
21
+ id: z.string().min(1),
22
+ cwd: z.string(),
23
+ name: z.string().nullable(),
24
+ preview: z.string(),
25
+ status: z.object({ type: z.string() }),
26
+ })
27
+ .transform((thread) => ({
28
+ id: thread.id,
29
+ cwd: thread.cwd,
30
+ label: (thread.name?.trim() || thread.preview.trim() || "Untitled session")
31
+ .replace(/\s+/gu, " ")
32
+ .slice(0, 120),
33
+ status: thread.status.type,
34
+ }));
16
35
  /** Codex CLI 的四种预设;协议参数只在适配层使用,菜单与执行共用此定义。 */
17
36
  const permissionModes = [
18
37
  {
@@ -57,7 +76,7 @@ export async function createCodexAgent(command = "codex") {
57
76
  /** 只绑定当前任务的连接,不能把迟到输入送入下一轮或其他客户端的轮次。 */
58
77
  let steer;
59
78
  let respond;
60
- /** 任务与只读查询共用连接流程;各自使用独立 socket,不争用会话。 */
79
+ /** 任务、会话管理与只读查询共用连接流程,各自使用独立 socket。 */
61
80
  async function connectServer(cwd, signal) {
62
81
  for (let attempt = 0; attempt < 2; attempt++) {
63
82
  signal.throwIfAborted();
@@ -101,6 +120,22 @@ export async function createCodexAgent(command = "codex") {
101
120
  }
102
121
  throw new Error("Codex daemon unavailable.");
103
122
  }
123
+ /** 会话管理共用短连接;超时或关停只断开查询,不中断后台任务。 */
124
+ async function withSessionConnection(cwd, signal, action) {
125
+ signal = AbortSignal.any([signal, AbortSignal.timeout(45_000)]);
126
+ const rpc = createCodexRpc(await connectServer(cwd, signal));
127
+ const abort = () => rpc.close("Codex session request cancelled.");
128
+ signal.addEventListener("abort", abort, { once: true });
129
+ try {
130
+ signal.throwIfAborted();
131
+ await rpc.initialize();
132
+ return await action(rpc);
133
+ }
134
+ finally {
135
+ signal.removeEventListener("abort", abort);
136
+ rpc.close();
137
+ }
138
+ }
104
139
  /** 模型菜单与状态共用只读连接;按需读取目录配置,不恢复会话或发起轮次。 */
105
140
  async function readModelData(cwd, signal, includeConfig = false) {
106
141
  signal = AbortSignal.any([signal, AbortSignal.timeout(15_000)]);
@@ -132,7 +167,7 @@ export async function createCodexAgent(command = "codex") {
132
167
  model: z.string().min(1),
133
168
  displayName: z.string(),
134
169
  hidden: z.boolean(),
135
- isDefault: z.boolean().optional(),
170
+ isDefault: z.boolean(),
136
171
  supportedReasoningEfforts: z.array(z.object({
137
172
  reasoningEffort: z.string().min(1),
138
173
  description: z.string(),
@@ -173,6 +208,68 @@ export async function createCodexAgent(command = "codex") {
173
208
  name: "Codex",
174
209
  version: stdout.trim().replace(/^codex-cli /, ""),
175
210
  permissionModes: permissionModes.map(({ id, label }) => ({ id, label })),
211
+ async listSessions(cwd, signal) {
212
+ return withSessionConnection(cwd, signal, async (rpc) => {
213
+ const sessions = [];
214
+ let cursor = null;
215
+ do {
216
+ const page = z
217
+ .object({ data: z.array(sessionSchema), nextCursor: z.string().nullable() })
218
+ .parse(await rpc.request("thread/list", {
219
+ cwd,
220
+ cursor,
221
+ limit: 100,
222
+ sortKey: "updated_at",
223
+ modelProviders: [],
224
+ /** 默认来源会漏掉 app-server 会话;排除自动生成的子 Agent 会话。 */
225
+ sourceKinds: ["cli", "vscode", "exec", "appServer", "unknown"],
226
+ archived: false,
227
+ }));
228
+ for (const session of page.data)
229
+ if (session.cwd === cwd && !sessions.some((item) => item.id === session.id))
230
+ sessions.push({ id: session.id, label: session.label });
231
+ cursor = page.nextCursor;
232
+ } while (cursor);
233
+ return sessions;
234
+ }).catch(() => {
235
+ throw new Error("Codex session list unavailable. Try /list again.");
236
+ });
237
+ },
238
+ async createSession(input, signal) {
239
+ return withSessionConnection(input.cwd, signal, async (rpc) => {
240
+ const permissionMode = permissionModes.find((mode) => mode.id === (input.permissionMode ?? "default"));
241
+ if (!permissionMode)
242
+ throw new Error("Unknown permission mode.");
243
+ const { thread } = z.object({ thread: sessionSchema }).parse(await rpc.request("thread/start", {
244
+ cwd: input.cwd,
245
+ ...permissionMode.config,
246
+ ...(input.model ? { model: input.model } : {}),
247
+ ephemeral: false,
248
+ }));
249
+ if (thread.cwd !== input.cwd || thread.status !== "idle")
250
+ throw new Error("Unexpected new session.");
251
+ /** 显式命名会物化空会话,保证首次发言前也能列出并在重启后恢复。 */
252
+ await rpc.request("thread/name/set", {
253
+ threadId: thread.id,
254
+ name: input.name.trim() || "New session",
255
+ });
256
+ return { id: thread.id, label: input.name.trim() || "New session" };
257
+ }).catch(() => {
258
+ throw new Error("Codex session creation unconfirmed. Current session unchanged. Check /list before retrying /new.");
259
+ });
260
+ },
261
+ async readSession(cwd, sessionId, signal) {
262
+ const { thread } = await withSessionConnection(cwd, signal, async (rpc) => z
263
+ .object({ thread: sessionSchema })
264
+ .parse(await rpc.request("thread/read", { threadId: sessionId }))).catch(() => {
265
+ throw new Error("Codex session unavailable. Use a full session ID from /list.");
266
+ });
267
+ if (thread.id !== sessionId || thread.cwd !== cwd)
268
+ throw new Error("Codex session is not in the current directory. Choose one from /list.");
269
+ if (!["idle", "notLoaded"].includes(thread.status))
270
+ throw new Error("Codex session busy or unavailable. Wait until it is idle.");
271
+ return { id: thread.id, label: thread.label };
272
+ },
176
273
  async listModels(cwd, signal) {
177
274
  return (await readModelData(cwd, signal)).models;
178
275
  },
@@ -219,6 +316,8 @@ export async function createCodexAgent(command = "codex") {
219
316
  /** 应用随机 ID 隔离每次连接;已见 RPC 编号保留到任务结束,重复请求不生成新按钮。 */
220
317
  const interactions = new Map();
221
318
  const seenRequests = new Set();
319
+ /** 保留已展示或已回答的问题标识,重复事件与恢复快照不能重新打开旧问题。 */
320
+ const seenQuestions = new Set();
222
321
  const fileChanges = new Map();
223
322
  /** 新任务等启动响应,恢复任务等完整快照,再处理当前轮次的早到事件。 */
224
323
  const earlyMessages = [];
@@ -325,6 +424,61 @@ export async function createCodexAgent(command = "codex") {
325
424
  else
326
425
  rpc.close();
327
426
  }
427
+ /** RPC 提问与异步消息共用展示和期限管理;异步题逐题提交,不等待其他题。 */
428
+ function openInteraction(message) {
429
+ const parsed = parseCodexInteraction(message.method ?? "", message.params, input.cwd, fileChanges);
430
+ if ("error" in parsed) {
431
+ if (parsed.unsupported && message.id !== undefined)
432
+ rpc.write({
433
+ id: message.id,
434
+ error: { code: -32601, message: "Unsupported interactive request" },
435
+ });
436
+ fail(parsed.error);
437
+ return;
438
+ }
439
+ for (const interaction of message.id === undefined
440
+ ? parsed.request.questions.map((question) => ({
441
+ ...parsed.request,
442
+ id: randomUUID(),
443
+ questions: [question],
444
+ }))
445
+ : [parsed.request]) {
446
+ if (message.id === undefined) {
447
+ if (interaction.questions.some((question) => seenQuestions.has(question.id)))
448
+ continue;
449
+ for (const question of interaction.questions)
450
+ seenQuestions.add(question.id);
451
+ }
452
+ interactions.set(interaction.id, {
453
+ ...parsed,
454
+ request: interaction,
455
+ requestId: message.id ?? null,
456
+ timer: interaction.expiresAt === null
457
+ ? undefined
458
+ : setTimeout(() => {
459
+ const pending = interactions.get(interaction.id);
460
+ if (!pending)
461
+ return;
462
+ if (interaction.blocking) {
463
+ fail("Request timed out. Check /last, then /resume.");
464
+ }
465
+ else {
466
+ interactions.delete(interaction.id);
467
+ /** 异步问题没有待响应 RPC;过期只关闭按钮,不提交默认答案。 */
468
+ try {
469
+ input.onInteractionClosed(interaction.id, "Question expired. Task continues.");
470
+ if (pending.requestId !== null)
471
+ rpc.write({ id: pending.requestId, result: { answers: {} } });
472
+ }
473
+ catch {
474
+ fail("Cannot save expired question state. Task interrupted.");
475
+ }
476
+ }
477
+ }, Math.max(0, interaction.expiresAt - Date.now())),
478
+ });
479
+ input.onInteraction(interaction);
480
+ }
481
+ }
328
482
  /** 实时事件与恢复快照共用协议处理,始终只消费当前任务的事件。 */
329
483
  function onMessage(message) {
330
484
  if (settled)
@@ -351,43 +505,7 @@ export async function createCodexAgent(command = "codex") {
351
505
  if (controller.signal.aborted || seenRequests.has(message.id))
352
506
  return;
353
507
  seenRequests.add(message.id);
354
- const parsed = parseCodexInteraction(message.method, message.params, input.cwd, fileChanges);
355
- if ("error" in parsed) {
356
- if (parsed.unsupported)
357
- rpc.write({
358
- id: message.id,
359
- error: { code: -32601, message: "Unsupported interactive request" },
360
- });
361
- fail(parsed.error);
362
- return;
363
- }
364
- const { request: interaction } = parsed;
365
- interactions.set(interaction.id, {
366
- requestId: message.id,
367
- ...parsed,
368
- timer: interaction.expiresAt === null
369
- ? undefined
370
- : setTimeout(() => {
371
- const pending = interactions.get(interaction.id);
372
- if (!pending)
373
- return;
374
- if (interaction.blocking) {
375
- fail("Request timed out. Check /last, then /resume.");
376
- }
377
- else {
378
- interactions.delete(interaction.id);
379
- /** 非阻塞问题过期只返回空答案,不替用户选择,也不中断正在执行的任务。 */
380
- try {
381
- input.onInteractionClosed(interaction.id, "Question expired. Task continues.");
382
- rpc.write({ id: pending.requestId, result: { answers: {} } });
383
- }
384
- catch {
385
- fail("Cannot save expired question state. Task interrupted.");
386
- }
387
- }
388
- }, Math.max(0, interaction.expiresAt - Date.now())),
389
- });
390
- input.onInteraction(interaction);
508
+ openInteraction(message);
391
509
  }
392
510
  else if (message.method === "serverRequest/resolved") {
393
511
  const event = z
@@ -445,6 +563,9 @@ export async function createCodexAgent(command = "codex") {
445
563
  text: z.string().optional(),
446
564
  status: z.string().optional(),
447
565
  changes: fileChangesSchema.optional(),
566
+ delivery: z.string().nullish(),
567
+ questions: z.array(z.unknown()).nullish(),
568
+ content: z.unknown().optional(),
448
569
  }),
449
570
  })
450
571
  .parse(message.params);
@@ -460,6 +581,47 @@ export async function createCodexAgent(command = "codex") {
460
581
  messages.set(event.item.id, event.item.text);
461
582
  input.onText(formatOutput());
462
583
  }
584
+ if (message.method === "item/completed" &&
585
+ event.item.type === "agentMessage" &&
586
+ event.item.delivery === "async" &&
587
+ event.item.questions?.length &&
588
+ !controller.signal.aborted)
589
+ openInteraction(message);
590
+ /** 官方客户端把异步答案作为用户消息广播;其他端已答的题立即关闭。 */
591
+ if (event.item.type === "userMessage") {
592
+ for (const content of z
593
+ .array(z.object({ type: z.string(), text: z.string().optional() }))
594
+ .parse(event.item.content)) {
595
+ if (content.type !== "text")
596
+ continue;
597
+ const reply = content.text
598
+ ?.trim()
599
+ .match(/^<send_user_message_question_reply>\s*([\s\S]*?)\s*<\/send_user_message_question_reply>$/);
600
+ if (!reply?.[1])
601
+ continue;
602
+ let answers;
603
+ try {
604
+ answers = z
605
+ .array(z.object({ questionItemId: z.string(), answer: z.string().min(1) }))
606
+ .parse(JSON.parse(reply[1]));
607
+ }
608
+ catch {
609
+ /** 普通用户文字也可能包含该标记;无效封套不影响任务。 */
610
+ continue;
611
+ }
612
+ for (const answer of answers) {
613
+ seenQuestions.add(answer.questionItemId);
614
+ for (const [id, interaction] of interactions) {
615
+ if (interaction.requestId !== null ||
616
+ !interaction.request.questions.some((question) => question.id === answer.questionItemId))
617
+ continue;
618
+ clearTimeout(interaction.timer);
619
+ interactions.delete(id);
620
+ input.onInteractionClosed(id, "Answered in another client.");
621
+ }
622
+ }
623
+ }
624
+ }
463
625
  }
464
626
  else if (message.method === "turn/started" || message.method === "turn/completed") {
465
627
  const event = z
@@ -490,20 +652,20 @@ export async function createCodexAgent(command = "codex") {
490
652
  }
491
653
  }
492
654
  const rpc = createCodexRpc(socket, { onMessage, onFailure: fail, onClose });
493
- steer = async (prompt) => {
655
+ steer = async (prompt, attachments) => {
494
656
  if (!sessionId || !runId || settled || controller.signal.aborted)
495
657
  throw new Error("Codex turn is not running. Input not sent; try again later.");
496
658
  const response = z.object({ turnId: z.string() }).parse(await request("turn/steer", {
497
659
  threadId: sessionId,
498
660
  expectedTurnId: runId,
499
- input: [{ type: "text", text: prompt, text_elements: [] }],
661
+ input: createCodexInput(prompt, attachments),
500
662
  }));
501
663
  if (response.turnId !== runId) {
502
664
  fail("Codex input returned a different turn. Task status unknown.");
503
665
  throw new Error("Codex input turn unconfirmed. Not retried; check the session.");
504
666
  }
505
667
  };
506
- respond = (id, answer) => {
668
+ respond = async (id, answer) => {
507
669
  const interaction = interactions.get(id);
508
670
  if (!interaction ||
509
671
  settled ||
@@ -535,6 +697,22 @@ export async function createCodexAgent(command = "codex") {
535
697
  /** 在写入前移除映射,失败也不重发批准;任务终态负责说明不确定结果。 */
536
698
  interactions.delete(id);
537
699
  clearTimeout(interaction.timer);
700
+ if (interaction.requestId === null) {
701
+ if (!("answers" in answer) || !steer)
702
+ return false;
703
+ /** 异步答案沿用官方封套,经当前轮次输入通道提交并等待接收确认。 */
704
+ try {
705
+ await steer(`<send_user_message_question_reply>\n${JSON.stringify(interaction.request.questions.map((question) => ({
706
+ questionItemId: question.id,
707
+ question: question.question,
708
+ answer: answer.answers[question.id]?.answers[0],
709
+ })))}\n</send_user_message_question_reply>`);
710
+ return true;
711
+ }
712
+ catch {
713
+ return false;
714
+ }
715
+ }
538
716
  if (approval?.result.decision === "cancel")
539
717
  cancelledByApproval = true;
540
718
  rpc.write({
@@ -617,12 +795,14 @@ export async function createCodexAgent(command = "codex") {
617
795
  .object({
618
796
  thread: z.object({
619
797
  id: z.string().min(1),
620
- status: z.object({ type: z.string() }).optional(),
798
+ status: z.object({ type: z.string() }),
621
799
  }),
622
800
  approvalPolicy: z.unknown(),
623
801
  approvalsReviewer: z.string(),
624
- sandbox: z.object({ type: z.string() }),
625
- model: z.string().optional(),
802
+ sandbox: z.object({
803
+ type: z.enum(["dangerFullAccess", "readOnly", "externalSandbox", "workspaceWrite"]),
804
+ }),
805
+ model: z.string(),
626
806
  })
627
807
  .parse(await request(input.sessionId ? "thread/resume" : "thread/start", {
628
808
  ...(input.sessionId ? { threadId: input.sessionId, excludeTurns: true } : {}),
@@ -630,7 +810,7 @@ export async function createCodexAgent(command = "codex") {
630
810
  ...permissionMode.config,
631
811
  ...(input.model ? { model: input.model } : {}),
632
812
  }));
633
- if (response.thread.status?.type !== "idle")
813
+ if (response.thread.status.type !== "idle")
634
814
  throw new Error("Codex session busy. Message not sent; wait until it is idle.");
635
815
  /** 模型被服务端替换时停止派发,避免悄悄使用其他模型。 */
636
816
  if (input.model && response.model !== input.model)
@@ -651,7 +831,7 @@ export async function createCodexAgent(command = "codex") {
651
831
  const started = await Promise.race([
652
832
  request("turn/start", {
653
833
  threadId: sessionId,
654
- input: [{ type: "text", text: input.prompt, text_elements: [] }],
834
+ input: createCodexInput(input.prompt, input.attachments),
655
835
  ...(input.model ? { model: input.model } : {}),
656
836
  ...(input.reasoningEffort ? { effort: input.reasoningEffort } : {}),
657
837
  }),
@@ -688,14 +868,14 @@ export async function createCodexAgent(command = "codex") {
688
868
  }
689
869
  },
690
870
  /** 外部 ID 必须命中本次连接,不能把旧按钮转交给新一轮任务。 */
691
- respond(id, answer) {
871
+ async respond(id, answer) {
692
872
  return respond?.(id, answer) ?? false;
693
873
  },
694
874
  /** 复用当前连接提交补充消息,由 expectedTurnId 防止误入其他轮次。 */
695
- steer(prompt) {
875
+ steer(prompt, attachments) {
696
876
  if (!steer)
697
877
  return Promise.reject(new Error("Codex has no active turn. Input not sent; resend to continue."));
698
- return steer(prompt);
878
+ return steer(prompt, attachments);
699
879
  },
700
880
  /** 服务退出只断开客户端,保留 Codex daemon 和当前任务。 */
701
881
  disconnect() {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAqB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEnE,qDAAqD;AACrD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CACrE,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,eAAe,GAAG;IACtB;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE;KAChG;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE;YACN,OAAO,EAAE,iBAAiB;YAC1B,cAAc,EAAE,YAAY;YAC5B,iBAAiB,EAAE,aAAa;SACjC;KACF;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE;KAC9F;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE;KAC1F;CACO,CAAC;AAEX,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAO,GAAG,OAAO;IACtD,yCAAyC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAC3C,sRAAsR,CAAC,IAAI,CACzR,GAAG,CACJ,CACF,CACF,CAAC;IACF,4DAA4D;IAC5D,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;QACnE,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/F,IAAI,MAAmC,CAAC;IACxC,wCAAwC;IACxC,IAAI,KAAiC,CAAC;IACtC,IAAI,OAAqC,CAAC;IAE1C,yCAAyC;IACzC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,MAAmB;QAC3D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,EAAE;gBAClE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,gBAAgB,EAAE;oBACjD,gBAAgB,EAAE,GAAG,EAAE,CACrB,OAAO,CACL,IAAI,CACF,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAC3C,oBAAoB,EACpB,yBAAyB,CAC1B,CACF;oBACH,gBAAgB,EAAE,KAAK;oBACvB,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;gBACH,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC3C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC3B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC3C,UAAU,CAAC,SAAS,EAAE,CAAC;oBACvB,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,mDAAmD;gBACnD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;oBACxE,GAAG;oBACH,GAAG;oBACH,OAAO,EAAE,MAAM;oBACf,SAAS,EAAE,SAAS;oBACpB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,yCAAyC;IACzC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,MAAmB,EAAE,aAAa,GAAG,KAAK;QAClF,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,gCAAgC;QAChC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,aAAa;gBAC1B,CAAC,CAAC,CAAC;qBACE,MAAM,CAAC;oBACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;wBAClC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;qBACpD,CAAC;iBACH,CAAC;qBACD,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM;gBAClF,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,YAAgC,CAAC;YACrC,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,GAAG,CAAC;gBACF,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,CAAC;qBACX,MAAM,CAAC;oBACN,IAAI,EAAE,CAAC,CAAC,KAAK,CACX,CAAC,CAAC,MAAM,CAAC;wBACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;wBACvB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;wBACnB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;wBACjC,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAChC,CAAC,CAAC,MAAM,CAAC;4BACP,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;4BAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;yBACxB,CAAC,CACH;wBACD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC1C,CAAC,CACH;oBACD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAClC,CAAC;qBACD,KAAK,CACJ,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CACtF,CAAC;gBACJ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,KAAK,CAAC,SAAS;wBAAE,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;oBAChD,IACE,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;wBAChC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC;wBAEnD,MAAM,CAAC,IAAI,CAAC;4BACV,EAAE,EAAE,KAAK,CAAC,KAAK;4BACf,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK;4BACvC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gCACjE,EAAE,EAAE,MAAM,CAAC,eAAe;gCAC1B,KAAK,EAAE,MAAM,CAAC,WAAW;6BAC1B,CAAC,CAAC;4BACH,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;yBACrD,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,CAAC,QAAQ,MAAM,EAAE;YACjB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QACjD,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;YAC1B,OAAO,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM;YACxC,qCAAqC;YACrC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAChF,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,YAAY,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe;gBACzB,MAAM,EAAE,sBAAsB;gBAC9B,KAAK,EAAE,sBAAsB,CAAC;YAChC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK;YACb,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,GAAG,UAAU,CAAC;YACpB,IAAI,MAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,SAAS,CAAC;gBACnB,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAC3B,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;wBAC9C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,KAAK,CAAC,KAAK;4BACX,CAAC,CAAC;gCACE,MAAM,EAAE,aAAa;gCACrB,IAAI,EAAE,0DAA0D;6BACjE;4BACH,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;gBACpE,OAAO;oBACL,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;oBAC9C,IAAI,EAAE,wIAAwI;iBAC/I,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAA2B,CAAC;YACnE,wCAAwC;YACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC3C,kDAAkD;YAClD,MAAM,YAAY,GAAG,IAAI,GAAG,EASzB,CAAC;YACJ,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6C,CAAC;YACzE,uCAAuC;YACvC,MAAM,aAAa,GAAmB,EAAE,CAAC;YACzC,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;YAC7C,IAAI,KAAyB,CAAC;YAC9B,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,0CAA0C;YAC1C,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IAAI,SAAoD,CAAC;YAEzD,kCAAkC;YAClC,SAAS,MAAM,CAAC,MAAoB;gBAClC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,MAAM,EAAE;oBAAE,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACjF,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,SAAS,CAAC,OAAO,CACf,MAAM;oBACJ,CAAC,CAAC;wBACE,GAAG,MAAM;wBACT,IAAI,EACF,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;4BAC1D,qCAAqC;qBACxC;oBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACJ,CAAC;YAED,8CAA8C;YAC9C,SAAS,YAAY;gBACnB,OAAO,CAAC,GAAG,QAAQ,CAAC;qBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAClB;oBACE,IAAI;oBACJ,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAChC,CAAC,MAAM,EAAE,EAAE,CACT,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,CACrH;iBACF;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,MAAM,CAAC,CAChB;qBACA,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAED,kCAAkC;YAClC,SAAS,IAAI,CAAC,IAAY;gBACxB,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChB,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAED,wCAAwC;YACxC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,MAAgB;gBACrD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,KAAK,gBAAgB;oBAC1D,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1F,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,uCAAuC;oBACvC,IAAI,KAAK,YAAY,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;wBAClE,MAAM,IAAI,KAAK,CACb,MAAM,KAAK,eAAe;4BACxB,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK;4BACrB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC;4BACtD,CAAC,CAAC,2FAA2F;4BAC7F,CAAC,CAAC,MAAM,KAAK,YAAY;gCACvB,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,iDAAiD;gCACtF,CAAC,CAAC,SAAS,MAAM,cAAc,KAAK,CAAC,IAAI,8BAA8B,CAC5E,CAAC;oBACJ,IAAI,MAAM,KAAK,YAAY;wBACzB,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;oBACJ,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,SAAS,SAAS,CAAC,EAAU;gBAC3B,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBACxC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,EAAE,CAAC;oBACX,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAChC,OAAO,EACP,GAAG,EAAE;gBACH,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,MAAM,EAAE;oBAAE,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACjF,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,IAAI,OAAO;oBAAE,OAAO;gBACpB,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBAC9C,MAAM,EAAE,CAAC;oBACT,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBAC5D,OAAO;gBACT,CAAC;gBACD,SAAS,GAAG,UAAU,CACpB,GAAG,EAAE,CAAC,IAAI,CAAC,yEAAyE,CAAC,EACrF,KAAK,CACN,CAAC;gBACF,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;oBACvB,KAAK,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAChF,GAAG,CAAC,KAAK,EAAE,CACZ,CAAC;gBACJ,CAAC;;oBAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,kCAAkC;YAClC,SAAS,OAAO;gBACd,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,UAAU;oBAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,OAAO;oBACV,IAAI,CAAC,yEAAyE,CAAC,CAAC;;oBAC7E,GAAG,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;YAED,oCAAoC;YACpC,SAAS,SAAS,CAAC,OAAqB;gBACtC,IAAI,OAAO;oBAAE,OAAO;gBACpB,IAAI,CAAC;oBACH,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC7B,IAAI,UAAU,EAAE,CAAC;4BACf,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC5B,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;4BACnD,IAAI,gBAAgB,GAAG,SAAS;gCAC9B,OAAO,IAAI,CAAC,+CAA+C,CAAC,CAAC;wBACjE,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBAC/C,sCAAsC;wBACtC,MAAM,OAAO,GAAG,CAAC;6BACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;6BAC/D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC7B,IACE,CAAC,OAAO,CAAC,OAAO;4BAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;4BACnC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;4BAEpE,OAAO;wBACT,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;4BAAE,OAAO;wBACtE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC7B,MAAM,MAAM,GAAG,qBAAqB,CAClC,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,EACd,KAAK,CAAC,GAAG,EACT,WAAW,CACZ,CAAC;wBACF,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;4BACtB,IAAI,MAAM,CAAC,WAAW;gCACpB,GAAG,CAAC,KAAK,CAAC;oCACR,EAAE,EAAE,OAAO,CAAC,EAAE;oCACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;iCACpE,CAAC,CAAC;4BACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACnB,OAAO;wBACT,CAAC;wBACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;wBACxC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE;4BAC/B,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,GAAG,MAAM;4BACT,KAAK,EACH,WAAW,CAAC,SAAS,KAAK,IAAI;gCAC5B,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,UAAU,CACR,GAAG,EAAE;oCACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oCACjD,IAAI,CAAC,OAAO;wCAAE,OAAO;oCACrB,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;wCACzB,IAAI,CAAC,+CAA+C,CAAC,CAAC;oCACxD,CAAC;yCAAM,CAAC;wCACN,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;wCACpC,wCAAwC;wCACxC,IAAI,CAAC;4CACH,KAAK,CAAC,mBAAmB,CACvB,WAAW,CAAC,EAAE,EACd,mCAAmC,CACpC,CAAC;4CACF,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wCAChE,CAAC;wCAAC,MAAM,CAAC;4CACP,IAAI,CAAC,uDAAuD,CAAC,CAAC;wCAChE,CAAC;oCACH,CAAC;gCACH,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAChD;yBACR,CAAC,CAAC;wBACH,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBACnC,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;wBACvD,MAAM,KAAK,GAAG,CAAC;6BACZ,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;6BAC9E,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;4BAAE,OAAO;wBACzC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAClC,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC;4BAC7C,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;gCAAE,SAAS;4BACxD,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;4BAChC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACxB,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,8BAA8B,EAAE,CAAC;wBAC7D,MAAM,KAAK,GAAG,CAAC;6BACZ,MAAM,CAAC;4BACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;4BACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;4BAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;4BAClB,OAAO,EAAE,iBAAiB;yBAC3B,CAAC;6BACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;4BAC3D,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;gCAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;4BAC5E,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;wBACxD,MAAM,KAAK,GAAG,CAAC;6BACZ,MAAM,CAAC;4BACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;4BACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;4BAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;4BAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;yBAClB,CAAC;6BACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;4BAAE,OAAO;wBACrE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC7E,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC/B,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;wBACpF,MAAM,KAAK,GAAG,CAAC;6BACZ,MAAM,CAAC;4BACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;4BACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;4BAClB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gCACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gCAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gCACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gCAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gCAC7B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;6BACtC,CAAC;yBACH,CAAC;6BACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;4BAAE,OAAO;wBACrE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BACrC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO;gCAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC3E,QAAQ,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,CAAC,EAAE,EACb,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE,CAAC;4BACF,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;wBAC/B,CAAC;wBACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BACxE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7C,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;wBACpF,MAAM,KAAK,GAAG,CAAC;6BACZ,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;6BAClD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BAAE,OAAO;wBACtE,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;4BACxC,MAAM,CAAC;gCACL,MAAM,EACJ,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW;oCAC/B,CAAC,CAAC,WAAW;oCACb,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ;wCAC9B,CAAC,CAAC,QAAQ;wCACV,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,mBAAmB;4CAChD,CAAC,CAAC,WAAW;4CACb,CAAC,CAAC,aAAa;gCACvB,IAAI,EACF,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW;oCAC/B,CAAC,CAAC,EAAE;oCACJ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ;wCAC9B,CAAC,CAAC,8DAA8D;wCAChE,CAAC,CAAC,mDAAmD;6BAC5D,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CACF,uFAAuF,CACxF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAE5E,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE;gBACvB,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAC9D,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACjF,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CACrD,MAAM,OAAO,CAAC,YAAY,EAAE;oBAC1B,QAAQ,EAAE,SAAS;oBACnB,cAAc,EAAE,KAAK;oBACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;iBAC3D,CAAC,CACH,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC9B,IAAI,CAAC,6DAA6D,CAAC,CAAC;oBACpE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC,CAAC;YAEF,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;gBACvB,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzC,IACE,CAAC,WAAW;oBACZ,OAAO;oBACP,UAAU,CAAC,MAAM,CAAC,OAAO;oBACzB,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEvF,OAAO,KAAK,CAAC;gBACf,MAAM,QAAQ,GACZ,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChF,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC5C,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ;wBAAE,OAAO,KAAK,CAAC;oBACvD,IACE,QAAQ,CAAC,QAAQ;wBACjB,WAAW,CAAC,UAAU;wBACtB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;4BAC5D,WAAW,CAAC,UAAU,CAAC,OAAO,EAChC,CAAC;wBACD,IAAI,CAAC,gDAAgD,CAAC,CAAC;wBACvD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;qBAAM,IACL,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;oBAC3E,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;wBACpD,OAAO,CACL,MAAM,EAAE,MAAM,KAAK,CAAC;4BACpB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;4BAClB,CAAC,CAAC,QAAQ,CAAC,SAAS;gCAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;oBACJ,CAAC,CAAC;oBAEF,OAAO,KAAK,CAAC;gBACf,uCAAuC;gBACvC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBAAE,mBAAmB,GAAG,IAAI,CAAC;gBACvE,GAAG,CAAC,KAAK,CAAC;oBACR,EAAE,EAAE,WAAW,CAAC,SAAS;oBACzB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;iBAC5C,CAAC,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAC3B,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;wBAC9C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,KAAK,CAAC,KAAK;4BACX,CAAC,CAAC;gCACE,MAAM,EAAE,aAAa;gCACrB,IAAI,EAAE,0DAA0D;6BACjE;4BACH,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;gBAClE,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CACzC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC,CAC1D,CAAC;gBACF,IAAI,CAAC,cAAc;oBACjB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;gBACJ,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;oBACrF,oCAAoC;oBACpC,MAAM,OAAO,GAAG,CAAC;yBACd,MAAM,CAAC;wBACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;qBAC7E,CAAC;yBACD,KAAK,CAAC,MAAM,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACtF,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS;wBACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;oBACjF,IAAI,MAAM,GAAkB,IAAI,CAAC;oBACjC,GAAG,CAAC;wBACF,MAAM,IAAI,GAAG,CAAC;6BACX,MAAM,CAAC;4BACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;4BACjE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;yBAClC,CAAC;6BACD,KAAK,CACJ,MAAM,OAAO,CAAC,mBAAmB,EAAE;4BACjC,QAAQ,EAAE,SAAS;4BACnB,KAAK,EAAE,CAAC;4BACR,SAAS,EAAE,MAAM;4BACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC9B,CAAC,CACH,CAAC;wBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC/D,IAAI,IAAI,EAAE,CAAC;4BACT,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;gCACzE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;4BAC9E,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACnB,oCAAoC;4BACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;gCAC3B,SAAS,CAAC;oCACR,MAAM,EAAE,gBAAgB;oCACxB,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;iCACvD,CAAC,CAAC;4BACL,KAAK,MAAM,OAAO,IAAI,aAAa;gCACjC,IAAI,OAAO,CAAC,MAAM,KAAK,yBAAyB;oCAAE,SAAS,CAAC,OAAO,CAAC,CAAC;4BACvE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;4BACzB,gBAAgB,GAAG,CAAC,CAAC;4BACrB,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;gCAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;4BACjF,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC;wBACjC,CAAC;wBACD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;oBAC3B,CAAC,QAAQ,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;oBAC/C,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,0CAA0C;oBAC1C,MAAM,OAAO,GAAG,CAAC;yBACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;yBACxE,KAAK,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC7D,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;gBACN,CAAC;gBACD,MAAM,QAAQ,GAAG,CAAC;qBACf,MAAM,CAAC;oBACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;qBAClD,CAAC;oBACF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;oBAC3B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;oBAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC7B,CAAC;qBACD,KAAK,CACJ,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE;oBAChE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7E,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,GAAG,cAAc,CAAC,MAAM;oBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/C,CAAC,CACH,CAAC;gBACJ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM;oBACzC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,gCAAgC;gBAChC,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;oBAC/C,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;gBAC3F,qCAAqC;gBACrC,IACE,QAAQ,CAAC,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC,cAAc;oBAChE,QAAQ,CAAC,iBAAiB,KAAK,cAAc,CAAC,MAAM,CAAC,iBAAiB;oBACtE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC7E,cAAc,CAAC,MAAM,CAAC,OAAO;oBAE/B,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAC;gBACJ,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAC3B,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;wBAC9C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;gBAChE,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjC,OAAO,CAAC,YAAY,EAAE;wBACpB,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;wBAChE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9C,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpE,CAAC;oBACF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBACnC,CAAC,CAAC;gBACH,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjE,KAAK,MAAM,OAAO,IAAI,aAAa;wBAAE,SAAS,CAAC,OAAO,CAAC,CAAC;oBACxD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;oBACzB,gBAAgB,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO;oBACV,MAAM,CAAC;wBACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;wBACvF,IAAI,EACF,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAC1D,CAAC,CAAC,KAAK,CAAC,OAAO;4BACf,CAAC,CAAC,2CAA2C;qBAClD,CAAC,CAAC;gBACL,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACT,KAAK,GAAG,SAAS,CAAC;gBAClB,OAAO,GAAG,SAAS,CAAC;gBACpB,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,MAAM,EAAE;oBAAE,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACjF,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;QACH,CAAC;QACD,qCAAqC;QACrC,OAAO,CAAC,EAAE,EAAE,MAAM;YAChB,OAAO,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;QACxC,CAAC;QACD,8CAA8C;QAC9C,KAAK,CAAC,MAAM;YACV,IAAI,CAAC,KAAK;gBACR,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAC3E,CAAC;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,wCAAwC;QACxC,UAAU;YACR,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QACD,+BAA+B;QAC/B,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"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"}