@namzu/sdk 52.4.0 → 52.5.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.
Files changed (143) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/authorization/gate.d.ts +11 -0
  3. package/dist/authorization/gate.d.ts.map +1 -1
  4. package/dist/authorization/gate.js +35 -0
  5. package/dist/authorization/gate.js.map +1 -1
  6. package/dist/authorization/removal.js +11 -6
  7. package/dist/authorization/removal.js.map +1 -1
  8. package/dist/authorization/rules.d.ts.map +1 -1
  9. package/dist/authorization/rules.js +30 -2
  10. package/dist/authorization/rules.js.map +1 -1
  11. package/dist/authorization/shell-paths.d.ts +20 -0
  12. package/dist/authorization/shell-paths.d.ts.map +1 -1
  13. package/dist/authorization/shell-paths.js +254 -52
  14. package/dist/authorization/shell-paths.js.map +1 -1
  15. package/dist/bridge/acp/server.d.ts +8 -0
  16. package/dist/bridge/acp/server.d.ts.map +1 -1
  17. package/dist/bridge/acp/server.js +7 -0
  18. package/dist/bridge/acp/server.js.map +1 -1
  19. package/dist/manager/resident/outbox.d.ts +4 -4
  20. package/dist/public-runtime.d.ts +2 -1
  21. package/dist/public-runtime.d.ts.map +1 -1
  22. package/dist/public-runtime.js +4 -1
  23. package/dist/public-runtime.js.map +1 -1
  24. package/dist/public-types.d.ts +1 -0
  25. package/dist/public-types.d.ts.map +1 -1
  26. package/dist/runtime/query/auto-review/classifier.d.ts +130 -0
  27. package/dist/runtime/query/auto-review/classifier.d.ts.map +1 -0
  28. package/dist/runtime/query/auto-review/classifier.js +244 -0
  29. package/dist/runtime/query/auto-review/classifier.js.map +1 -0
  30. package/dist/runtime/query/auto-review/index.d.ts +7 -0
  31. package/dist/runtime/query/auto-review/index.d.ts.map +1 -0
  32. package/dist/runtime/query/auto-review/index.js +4 -0
  33. package/dist/runtime/query/auto-review/index.js.map +1 -0
  34. package/dist/runtime/query/auto-review/prompt.d.ts +20 -0
  35. package/dist/runtime/query/auto-review/prompt.d.ts.map +1 -0
  36. package/dist/runtime/query/auto-review/prompt.js +89 -0
  37. package/dist/runtime/query/auto-review/prompt.js.map +1 -0
  38. package/dist/runtime/query/auto-review/rules.d.ts +49 -0
  39. package/dist/runtime/query/auto-review/rules.d.ts.map +1 -0
  40. package/dist/runtime/query/auto-review/rules.js +81 -0
  41. package/dist/runtime/query/auto-review/rules.js.map +1 -0
  42. package/dist/runtime/query/auto-review/transcript.d.ts +59 -0
  43. package/dist/runtime/query/auto-review/transcript.d.ts.map +1 -0
  44. package/dist/runtime/query/auto-review/transcript.js +116 -0
  45. package/dist/runtime/query/auto-review/transcript.js.map +1 -0
  46. package/dist/runtime/query/auto-review/verdict.d.ts +21 -0
  47. package/dist/runtime/query/auto-review/verdict.d.ts.map +1 -0
  48. package/dist/runtime/query/auto-review/verdict.js +45 -0
  49. package/dist/runtime/query/auto-review/verdict.js.map +1 -0
  50. package/dist/runtime/query/executor.d.ts +7 -0
  51. package/dist/runtime/query/executor.d.ts.map +1 -1
  52. package/dist/runtime/query/executor.js +26 -2
  53. package/dist/runtime/query/executor.js.map +1 -1
  54. package/dist/runtime/query/index.js +2 -2
  55. package/dist/runtime/query/index.js.map +1 -1
  56. package/dist/runtime/query/iteration/phases/context.d.ts +0 -9
  57. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  58. package/dist/runtime/query/iteration/phases/context.js +11 -2
  59. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  60. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  61. package/dist/runtime/query/iteration/phases/tool-review.js +39 -0
  62. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  63. package/dist/runtime/query/path-escalation.d.ts.map +1 -1
  64. package/dist/runtime/query/path-escalation.js +43 -10
  65. package/dist/runtime/query/path-escalation.js.map +1 -1
  66. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  67. package/dist/runtime/query/resume-pending.js +14 -0
  68. package/dist/runtime/query/resume-pending.js.map +1 -1
  69. package/dist/runtime/query/review-policy.d.ts +88 -1
  70. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  71. package/dist/runtime/query/review-policy.js +504 -11
  72. package/dist/runtime/query/review-policy.js.map +1 -1
  73. package/dist/tools/builtins/bash.d.ts.map +1 -1
  74. package/dist/tools/builtins/bash.js +2 -0
  75. package/dist/tools/builtins/bash.js.map +1 -1
  76. package/dist/tools/builtins/classifier-input.d.ts +9 -0
  77. package/dist/tools/builtins/classifier-input.d.ts.map +1 -0
  78. package/dist/tools/builtins/classifier-input.js +20 -0
  79. package/dist/tools/builtins/classifier-input.js.map +1 -0
  80. package/dist/tools/builtins/code-analysis.d.ts +2 -0
  81. package/dist/tools/builtins/code-analysis.d.ts.map +1 -1
  82. package/dist/tools/builtins/code-analysis.js +196 -119
  83. package/dist/tools/builtins/code-analysis.js.map +1 -1
  84. package/dist/tools/builtins/computer-use.d.ts +10 -10
  85. package/dist/tools/builtins/edit.d.ts.map +1 -1
  86. package/dist/tools/builtins/edit.js +12 -0
  87. package/dist/tools/builtins/edit.js.map +1 -1
  88. package/dist/tools/builtins/monitor.d.ts.map +1 -1
  89. package/dist/tools/builtins/monitor.js +3 -0
  90. package/dist/tools/builtins/monitor.js.map +1 -1
  91. package/dist/tools/builtins/web.d.ts.map +1 -1
  92. package/dist/tools/builtins/web.js +3 -0
  93. package/dist/tools/builtins/web.js.map +1 -1
  94. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  95. package/dist/tools/builtins/write-file.js +6 -0
  96. package/dist/tools/builtins/write-file.js.map +1 -1
  97. package/dist/tools/defineTool.d.ts +2 -0
  98. package/dist/tools/defineTool.d.ts.map +1 -1
  99. package/dist/tools/defineTool.js +1 -0
  100. package/dist/tools/defineTool.js.map +1 -1
  101. package/dist/types/acp/index.d.ts +7 -0
  102. package/dist/types/acp/index.d.ts.map +1 -1
  103. package/dist/types/code-analysis/index.d.ts +54 -3
  104. package/dist/types/code-analysis/index.d.ts.map +1 -1
  105. package/dist/types/hitl/index.d.ts +45 -1
  106. package/dist/types/hitl/index.d.ts.map +1 -1
  107. package/dist/types/hitl/index.js.map +1 -1
  108. package/dist/types/tool/index.d.ts +16 -0
  109. package/dist/types/tool/index.d.ts.map +1 -1
  110. package/dist/types/tool/index.js.map +1 -1
  111. package/package.json +1 -1
  112. package/src/authorization/gate.ts +35 -0
  113. package/src/authorization/removal.ts +12 -6
  114. package/src/authorization/rules.ts +27 -2
  115. package/src/authorization/shell-paths.ts +264 -51
  116. package/src/bridge/acp/server.ts +20 -0
  117. package/src/public-runtime.ts +18 -0
  118. package/src/public-types.ts +11 -0
  119. package/src/runtime/query/auto-review/classifier.ts +404 -0
  120. package/src/runtime/query/auto-review/index.ts +23 -0
  121. package/src/runtime/query/auto-review/prompt.ts +97 -0
  122. package/src/runtime/query/auto-review/rules.ts +106 -0
  123. package/src/runtime/query/auto-review/transcript.ts +159 -0
  124. package/src/runtime/query/auto-review/verdict.ts +50 -0
  125. package/src/runtime/query/executor.ts +29 -2
  126. package/src/runtime/query/index.ts +2 -2
  127. package/src/runtime/query/iteration/phases/context.ts +17 -3
  128. package/src/runtime/query/iteration/phases/tool-review.ts +41 -0
  129. package/src/runtime/query/path-escalation.ts +44 -9
  130. package/src/runtime/query/resume-pending.ts +14 -0
  131. package/src/runtime/query/review-policy.ts +591 -14
  132. package/src/tools/builtins/bash.ts +3 -0
  133. package/src/tools/builtins/classifier-input.ts +19 -0
  134. package/src/tools/builtins/code-analysis.ts +211 -119
  135. package/src/tools/builtins/edit.ts +13 -0
  136. package/src/tools/builtins/monitor.ts +4 -0
  137. package/src/tools/builtins/web.ts +3 -0
  138. package/src/tools/builtins/write-file.ts +6 -0
  139. package/src/tools/defineTool.ts +3 -0
  140. package/src/types/acp/index.ts +7 -0
  141. package/src/types/code-analysis/index.ts +51 -3
  142. package/src/types/hitl/index.ts +49 -1
  143. package/src/types/tool/index.ts +17 -0
@@ -20,15 +20,21 @@
20
20
  * What a host supplies is the one thing the kernel cannot: how to ask a
21
21
  * person (`prompt`).
22
22
  */
23
+ import { unknownProgramInLine } from '../../authorization/program.js';
24
+ import { readShellLine, shellPathAccess, } from '../../authorization/shell-paths.js';
23
25
  import { isTrustedReadOnly } from '../../tools/trusted-read-only.js';
24
26
  import { PLAN_MODE_REFUSAL } from '../../types/permission/index.js';
27
+ import { autoReviewBlockedFeedback } from './auto-review/classifier.js';
25
28
  import { DECLINED_TOOL_CALL_FEEDBACK } from './declined.js';
29
+ import { shellEscalations } from './path-escalation.js';
26
30
  export const REVIEW_MODES = [
27
31
  'prompt',
28
32
  'accept-edits',
29
33
  'auto',
30
34
  'strict',
31
35
  'plan',
36
+ 'bypass',
37
+ 'classify',
32
38
  ];
33
39
  export function isReviewMode(value) {
34
40
  return typeof value === 'string' && REVIEW_MODES.includes(value);
@@ -164,6 +170,209 @@ export const PROTECTED_PATH_UNATTENDED_REFUSAL = "Refused: a call in this batch
164
170
  * across directories, a target a variable may empty) and nobody can be asked.
165
171
  */
166
172
  export const DANGEROUS_REMOVAL_UNATTENDED_REFUSAL = 'Refused: a call in this batch removes something this check treats as catastrophic (the file system root, a top-level or home directory, the working directory or a parent of it, a glob across directories, or a target a variable or substitution may leave empty), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Name the exact directory to remove with a literal path.';
173
+ /**
174
+ * What the model is told when a batch carries a call a rule or a hook asked a
175
+ * person to approve and nobody can be asked.
176
+ */
177
+ export const ASK_RULE_UNATTENDED_REFUSAL = 'Refused: a call in this batch is one a rule or a hook says a person must approve, and nobody can be asked in this session. Nothing in this batch ran. Run it in a session where a person can be asked, or have the operator change the rule.';
178
+ /**
179
+ * What the model is told when the checks that decide whether a call reaches
180
+ * past its boundary did not finish and nobody can be asked.
181
+ */
182
+ export const UNFINISHED_CHECK_UNATTENDED_REFUSAL = 'Refused: the safety checks on a call in this batch did not finish, so it cannot be shown to be safe, and a person has to approve it and nobody can be asked in this session. Nothing in this batch ran. Try a simpler form of the call.';
183
+ /** What the model is told when the conversation is too long for the classifier to read. */
184
+ export const CLASSIFIER_TRANSCRIPT_TOO_LONG_FEEDBACK = 'Blocked by auto mode: the conversation has become too long for the safety check to read, so this action was not run. The conversation is being shortened; try the action again.';
185
+ /**
186
+ * Tools the classifier is never asked about: they read, plan or keep the
187
+ * agent's own notes, and cannot change anything outside the session.
188
+ */
189
+ export const CLASSIFIER_SAFE_TOOLS = new Set([
190
+ 'read',
191
+ 'grep',
192
+ 'glob',
193
+ 'ls',
194
+ 'lsp',
195
+ 'code_analysis',
196
+ 'search_tools',
197
+ 'view_image',
198
+ 'task_create',
199
+ 'task_update',
200
+ 'task_list',
201
+ 'agent_task_list',
202
+ 'get_goal',
203
+ 'update_goal',
204
+ 'exit_plan_mode',
205
+ ]);
206
+ /**
207
+ * Programs an allow rule must not stand in for the classifier on: each runs
208
+ * whatever it is handed, so a rule that let `python` through would approve any
209
+ * script without the classifier reading it. Matched on the program's base name
210
+ * with any `.exe` removed, so `/usr/bin/python3` and `Python3.11` count.
211
+ */
212
+ const CLASSIFIER_LAUNCHERS = new Set([
213
+ 'node',
214
+ 'nodejs',
215
+ 'deno',
216
+ 'tsx',
217
+ 'ts-node',
218
+ 'ruby',
219
+ 'perl',
220
+ 'php',
221
+ 'lua',
222
+ 'rscript',
223
+ 'julia',
224
+ 'osascript',
225
+ 'npx',
226
+ 'bunx',
227
+ 'uvx',
228
+ 'pipx',
229
+ 'bash',
230
+ 'sh',
231
+ 'dash',
232
+ 'ash',
233
+ 'ksh',
234
+ 'zsh',
235
+ 'fish',
236
+ 'csh',
237
+ 'tcsh',
238
+ 'pwsh',
239
+ 'powershell',
240
+ 'cmd',
241
+ 'busybox',
242
+ 'ssh',
243
+ 'eval',
244
+ 'exec',
245
+ 'env',
246
+ 'xargs',
247
+ 'sudo',
248
+ 'doas',
249
+ 'make',
250
+ 'gmake',
251
+ 'awk',
252
+ 'gawk',
253
+ 'mawk',
254
+ 'nawk',
255
+ ]);
256
+ /** Interpreters named by a pattern rather than a list: `python`, `python3`, `python3.11`. */
257
+ const CLASSIFIER_LAUNCHER_PATTERNS = [/^python[0-9.]*$/, /^pypy[0-9.]*$/];
258
+ /**
259
+ * Package managers and what they run. `npm` starts a script only through
260
+ * these verbs; the others treat any verb that is not one of their own commands
261
+ * as a script name (`pnpm build`, `yarn test`, `bun app.ts`).
262
+ */
263
+ const NPM_SCRIPT_VERBS = new Set([
264
+ 'run',
265
+ 'run-script',
266
+ 'rum',
267
+ 'urn',
268
+ 'test',
269
+ 't',
270
+ 'tst',
271
+ 'start',
272
+ 'stop',
273
+ 'restart',
274
+ 'exec',
275
+ 'x',
276
+ 'init',
277
+ 'create',
278
+ 'innit',
279
+ 'explore',
280
+ ]);
281
+ const SCRIPT_RUNNERS_WITH_OWN_VERBS = new Map([
282
+ [
283
+ 'pnpm',
284
+ new Set(['install', 'i', 'add', 'remove', 'rm', 'uninstall', 'un', 'update', 'up', 'upgrade']),
285
+ ],
286
+ ['yarn', new Set(['install', 'add', 'remove', 'upgrade', 'up', 'info', 'why', 'list', 'config'])],
287
+ [
288
+ 'bun',
289
+ new Set(['install', 'i', 'add', 'a', 'remove', 'rm', 'update', 'pm', 'outdated', 'info']),
290
+ ],
291
+ ]);
292
+ /** Package-manager and tool flags whose value is the next word, so the verb is not that word. */
293
+ const FLAGS_WITH_A_VALUE = new Set([
294
+ '-C',
295
+ '--dir',
296
+ '--cwd',
297
+ '--prefix',
298
+ '--filter',
299
+ '-F',
300
+ '-w',
301
+ '--workspace',
302
+ '--registry',
303
+ '--userconfig',
304
+ '--cache',
305
+ '--loglevel',
306
+ '--config',
307
+ '--cd',
308
+ ]);
309
+ /** The first word of `args` that is not an option or an option's value. */
310
+ function verbOf(args) {
311
+ for (let i = 0; i < args.length; i += 1) {
312
+ const value = args[i].value;
313
+ if (value === '--')
314
+ return args[i + 1]?.value;
315
+ if (!value.startsWith('-'))
316
+ return value;
317
+ if (!value.includes('=') && FLAGS_WITH_A_VALUE.has(value))
318
+ i += 1;
319
+ }
320
+ return undefined;
321
+ }
322
+ /** Whether a program in a line runs code it is handed, so that an allow rule cannot stand in for a reviewer. */
323
+ function launchesCode(invocation) {
324
+ const program = (invocation.program.split(/[\\/]/).pop() ?? invocation.program)
325
+ .toLowerCase()
326
+ .replace(/\.exe$/, '');
327
+ if (CLASSIFIER_LAUNCHERS.has(program))
328
+ return true;
329
+ if (CLASSIFIER_LAUNCHER_PATTERNS.some((pattern) => pattern.test(program)))
330
+ return true;
331
+ const verb = verbOf(invocation.args);
332
+ switch (program) {
333
+ case 'npm':
334
+ return verb !== undefined && NPM_SCRIPT_VERBS.has(verb);
335
+ case 'pnpm':
336
+ case 'yarn':
337
+ case 'bun': {
338
+ // A bare `yarn` runs the install; anything else that is not the manager's
339
+ // own command is a script, or for bun a file.
340
+ if (verb === undefined)
341
+ return false;
342
+ return !SCRIPT_RUNNERS_WITH_OWN_VERBS.get(program).has(verb);
343
+ }
344
+ case 'uv':
345
+ return verb === 'run' || verb === 'tool' || verb === 'x';
346
+ case 'poetry':
347
+ case 'pipenv':
348
+ case 'cargo':
349
+ case 'go':
350
+ return verb === 'run';
351
+ case 'git':
352
+ // `-c key=value` can name a program git then runs (core.pager, core.sshCommand).
353
+ return invocation.args.some((arg) => /^(?:-c|--config-env)/.test(arg.value));
354
+ case 'find':
355
+ return invocation.args.some((arg) => /^-(?:exec|execdir|ok|okdir|fprint|fprintf|fls)/.test(arg.value));
356
+ default:
357
+ return false;
358
+ }
359
+ }
360
+ /** Tools that start other agents; an allow rule for one is not consulted under `classify`. */
361
+ const CLASSIFIER_DELEGATION_TOOLS = new Set([
362
+ 'agent',
363
+ 'create_task',
364
+ 'continue_task',
365
+ ]);
366
+ /** The shell commands `accept-edits` also approves, when every path they name is inside the roots. */
367
+ export const ACCEPT_EDITS_SHELL_COMMANDS = new Set([
368
+ 'mkdir',
369
+ 'touch',
370
+ 'rm',
371
+ 'rmdir',
372
+ 'mv',
373
+ 'cp',
374
+ 'sed',
375
+ ]);
167
376
  /**
168
377
  * What the model is told when a batch would show it the operator's screen for
169
378
  * the first time in a session and nobody can be asked.
@@ -171,16 +380,115 @@ export const DANGEROUS_REMOVAL_UNATTENDED_REFUSAL = 'Refused: a call in this bat
171
380
  export const SCREEN_CONSENT_UNATTENDED_REFUSAL = "Refused: this call would send what is on the user's screen to the model provider, which a person agrees to once per session, and nobody can be asked in this session. Nothing in this batch ran. Tell the user computer use needs their consent in an interactive session.";
172
381
  /** What the model is told when the operator declines to share the screen. */
173
382
  export const SCREEN_CONSENT_DECLINED_FEEDBACK = 'The user declined to share their screen in this session. Nothing in this batch ran. Do not take screenshots or read windows again; ask the user how they want to proceed.';
174
- /** Whether the call writes a protected path or removes something catastrophic. */
383
+ /**
384
+ * Whether the call writes a protected path, removes something catastrophic, or
385
+ * could not be checked.
386
+ */
175
387
  function reachesAFloor(tc) {
176
388
  return ((tc.escalation?.protectedPaths?.length ?? 0) > 0 ||
177
- tc.escalation?.dangerousRemoval !== undefined);
389
+ tc.escalation?.dangerousRemoval !== undefined ||
390
+ tc.escalation?.unfinishedCheck !== undefined);
178
391
  }
179
392
  /** The refusal for a batch that reaches a floor and cannot be asked about it. */
180
393
  function floorRefusal(toolCalls) {
181
- return toolCalls.some((tc) => (tc.escalation?.protectedPaths?.length ?? 0) > 0)
182
- ? PROTECTED_PATH_UNATTENDED_REFUSAL
183
- : DANGEROUS_REMOVAL_UNATTENDED_REFUSAL;
394
+ if (toolCalls.some((tc) => (tc.escalation?.protectedPaths?.length ?? 0) > 0)) {
395
+ return PROTECTED_PATH_UNATTENDED_REFUSAL;
396
+ }
397
+ return toolCalls.some((tc) => tc.escalation?.dangerousRemoval !== undefined)
398
+ ? DANGEROUS_REMOVAL_UNATTENDED_REFUSAL
399
+ : UNFINISHED_CHECK_UNATTENDED_REFUSAL;
400
+ }
401
+ /**
402
+ * Whether a mode needs a batch a rule already allowed to come to the policy.
403
+ *
404
+ * `plan` must refuse a change a rule would have let through, and `classify`
405
+ * must look at a call whose allow rule is too wide to vouch for it. A host
406
+ * answers its `reviewAllowedCalls` with this for the mode it is in.
407
+ */
408
+ export function modeReviewsAllowedCalls(mode) {
409
+ return mode === 'plan' || mode === 'classify';
410
+ }
411
+ /** Whether the mode keeps only the questions a person must answer, and leaves the rest to itself. */
412
+ function isPermissive(mode) {
413
+ return mode === 'bypass' || mode === 'classify';
414
+ }
415
+ /**
416
+ * Whether the call is one of the few no mode may settle in advance: a rule or
417
+ * hook asked for a person, a sandbox escape, a catastrophic removal, a check
418
+ * that did not finish, or a tool that always needs approval. The dangerous
419
+ * pattern floor and `deny` rules are not here: the gate refuses those first.
420
+ */
421
+ function isBypassImmune(tc) {
422
+ return (tc.authorization?.askRule === true ||
423
+ tc.escalation?.sandboxEscape === true ||
424
+ tc.escalation?.dangerousRemoval !== undefined ||
425
+ tc.escalation?.unfinishedCheck !== undefined ||
426
+ tc.requiresApproval === true);
427
+ }
428
+ /** The refusal for the first immune thing in a batch nobody can be asked about, or undefined. */
429
+ function immuneRefusal(toolCalls, escapeConfirmed) {
430
+ if (!escapeConfirmed && toolCalls.some((tc) => tc.escalation?.sandboxEscape === true)) {
431
+ return SANDBOX_ESCAPE_UNATTENDED_REFUSAL;
432
+ }
433
+ if (toolCalls.some((tc) => tc.escalation?.dangerousRemoval !== undefined)) {
434
+ return DANGEROUS_REMOVAL_UNATTENDED_REFUSAL;
435
+ }
436
+ if (toolCalls.some((tc) => tc.escalation?.unfinishedCheck !== undefined)) {
437
+ return UNFINISHED_CHECK_UNATTENDED_REFUSAL;
438
+ }
439
+ if (toolCalls.some((tc) => tc.requiresApproval === true)) {
440
+ return REQUIRES_APPROVAL_UNATTENDED_REFUSAL;
441
+ }
442
+ if (toolCalls.some((tc) => tc.authorization?.askRule === true))
443
+ return ASK_RULE_UNATTENDED_REFUSAL;
444
+ return undefined;
445
+ }
446
+ /** One sed command a script may hold: a substitution with plain flags, or a delete, print or line number. */
447
+ const SAFE_SED_COMMAND = /^\s*(?:\d+(?:,\d+)?|\$|\/[^/]*\/)?\s*(?:s(.)(?:(?!\1)[^\\]|\\.)*\1(?:(?!\1)[^\\]|\\.)*\1[gpiI0-9]*|[dpP=])\s*$/;
448
+ /**
449
+ * Whether a `sed` invocation can only edit text: its script is made of
450
+ * substitutions and simple line commands. A script with the `e`, `w` or `r`
451
+ * commands or flags can run a program or reach another file, and a script from
452
+ * a file cannot be read here, so those are not edits this vouches for.
453
+ */
454
+ function sedOnlyEdits(args) {
455
+ const scripts = [];
456
+ let positional = 0;
457
+ for (let i = 0; i < args.length; i += 1) {
458
+ const arg = args[i];
459
+ if (arg.expands)
460
+ return false;
461
+ const text = arg.value;
462
+ if (text === '-e') {
463
+ const next = args[i + 1];
464
+ if (next === undefined || next.expands)
465
+ return false;
466
+ scripts.push(next.value);
467
+ i += 1;
468
+ continue;
469
+ }
470
+ if (text.startsWith('--expression=')) {
471
+ scripts.push(text.slice('--expression='.length));
472
+ continue;
473
+ }
474
+ if (text === '-f' || text.startsWith('--file') || text === '--follow-symlinks')
475
+ return false;
476
+ if (text.startsWith('-')) {
477
+ if (!/^-(?:[nErszi]+|i\S*|-in-place(?:=\S*)?|-quiet|-silent|-regexp-extended|-separate|-null-data)$/.test(text)) {
478
+ return false;
479
+ }
480
+ continue;
481
+ }
482
+ positional += 1;
483
+ if (positional === 1 && scripts.length === 0)
484
+ scripts.push(text);
485
+ }
486
+ if (scripts.length === 0)
487
+ return false;
488
+ return scripts.every((script) => script
489
+ .split(/;|\n/)
490
+ .filter((part) => part.trim() !== '')
491
+ .every((part) => SAFE_SED_COMMAND.test(part)));
184
492
  }
185
493
  /**
186
494
  * Whether a skill's `allowed-tools` grant may stand in for a person on this
@@ -214,6 +522,14 @@ function isHookGranted(tc) {
214
522
  export function createReviewHandler(options = {}) {
215
523
  const { prompt, registry } = options;
216
524
  const mode = options.mode ?? (prompt ? 'prompt' : 'auto');
525
+ if (mode === 'classify' && options.classifier === undefined) {
526
+ throw new TypeError('The classify review mode needs a classifier (ReviewPolicyOptions.classifier).');
527
+ }
528
+ const safeTools = new Set([...CLASSIFIER_SAFE_TOOLS, ...(options.safeTools ?? [])]);
529
+ /** Set once the classifier has said the conversation is too long, until it judges something. */
530
+ let transcriptTooLong = false;
531
+ const toolOf = (name) => registry?.get(name) ?? registry?.get(name.toLowerCase());
532
+ const rootsNow = () => typeof options.roots === 'function' ? options.roots() : (options.roots ?? []);
217
533
  const exempt = options.exempt ??
218
534
  (registry ? (name, input) => isReviewExempt(registry, name, input) : () => false);
219
535
  const remembered = options.remembered ?? { all: false };
@@ -224,7 +540,104 @@ export function createReviewHandler(options = {}) {
224
540
  return tool?.capturesScreen?.(input) === true;
225
541
  }
226
542
  : () => false);
227
- return async (request) => {
543
+ /**
544
+ * Whether a shell call only makes, touches, removes, moves, copies or edits
545
+ * files, and every path it names is inside the roots: what `accept-edits`
546
+ * approves beyond `edit` and `write`. A catastrophic removal, a protected
547
+ * path, a path in a variable, a program nobody can name or a `sed` script
548
+ * that can run something is not that.
549
+ */
550
+ const shellFileCommandsInRoots = async (tc) => {
551
+ const rootList = rootsNow();
552
+ if (rootList.length === 0)
553
+ return false;
554
+ if (tc.escalation !== undefined ||
555
+ tc.isDestructive ||
556
+ tc.requiresApproval === true ||
557
+ tc.authorization?.explicitReview ||
558
+ tc.authorization?.askRule) {
559
+ return false;
560
+ }
561
+ const tool = toolOf(tc.name);
562
+ const argument = tool?.commandArgument;
563
+ if (tool === undefined || argument === undefined)
564
+ return false;
565
+ const line = tc.input?.[argument];
566
+ if (typeof line !== 'string')
567
+ return false;
568
+ const dialect = tool.commandDialect?.({ sandboxed: false }) ?? 'sh';
569
+ if (unknownProgramInLine(line, dialect) !== undefined)
570
+ return false;
571
+ const reading = readShellLine(line, dialect);
572
+ if (!reading.complete || reading.invocations.length === 0)
573
+ return false;
574
+ for (const invocation of reading.invocations) {
575
+ if (invocation.program === 'cd')
576
+ continue;
577
+ if (!ACCEPT_EDITS_SHELL_COMMANDS.has(invocation.program))
578
+ return false;
579
+ if (invocation.program === 'sed' && !sedOnlyEdits(invocation.args))
580
+ return false;
581
+ }
582
+ if (shellPathAccess(reading).uses.some((use) => use.unresolved))
583
+ return false;
584
+ const found = await shellEscalations(line, dialect, { roots: rootList, reviewOutside: true });
585
+ return (found.outsidePaths.length === 0 &&
586
+ found.protectedPaths.length === 0 &&
587
+ found.dangerousRemoval === undefined);
588
+ };
589
+ /** What `accept-edits` approves without asking: edits, exempt reads and file commands inside the roots. */
590
+ const acceptEditsAllows = async (tc) => !tc.authorization?.explicitReview &&
591
+ tc.escalation === undefined &&
592
+ !tc.isDestructive &&
593
+ tc.requiresApproval !== true &&
594
+ (ACCEPT_EDITS_TOOLS.has(tc.name) ||
595
+ exempt(tc.name, tc.input) ||
596
+ (await shellFileCommandsInRoots(tc)));
597
+ /**
598
+ * Whether a rule's `allow` is one the classifier should not defer to: the
599
+ * rule covers a whole shell tool, or the line starts an interpreter or a
600
+ * launcher that runs whatever it is given, or the tool starts other agents.
601
+ * Judged on the call as well as the rule because a rule that names a
602
+ * program ("python") is a rule about a program that can run anything.
603
+ */
604
+ const allowRuleTooWide = (tc) => {
605
+ if (CLASSIFIER_DELEGATION_TOOLS.has(tc.name.toLowerCase()))
606
+ return true;
607
+ const tool = toolOf(tc.name);
608
+ const argument = tool?.commandArgument;
609
+ if (tool === undefined || argument === undefined)
610
+ return false;
611
+ if (tc.authorization?.allowScope === 'tool')
612
+ return true;
613
+ const line = tc.input?.[argument];
614
+ if (typeof line !== 'string')
615
+ return true;
616
+ const reading = readShellLine(line, tool.commandDialect?.({ sandboxed: false }) ?? 'sh');
617
+ return !reading.complete || reading.invocations.some(launchesCode);
618
+ };
619
+ /** Whether `classify` decides this call without the classifier: it would not be asked, or is plainly safe. */
620
+ const neverSent = async (tc) => {
621
+ if (tc.authorization?.decision === 'allow' && !allowRuleTooWide(tc))
622
+ return true;
623
+ // A name on the safe list is safe for what it does in the session; a read of
624
+ // /etc/shadow is still a read of /etc/shadow, and a person's own ask is
625
+ // still a person's ask. Anything that reaches past the boundary, or that a
626
+ // rule or hook put to a person, is not "plainly safe".
627
+ if (safeTools.has(tc.name.toLowerCase()) &&
628
+ tc.escalation === undefined &&
629
+ !tc.authorization?.explicitReview) {
630
+ return true;
631
+ }
632
+ if (tc.escalation === undefined &&
633
+ !tc.isDestructive &&
634
+ !tc.authorization?.explicitReview &&
635
+ exempt(tc.name, tc.input)) {
636
+ return true;
637
+ }
638
+ return acceptEditsAllows(tc);
639
+ };
640
+ return async (request, context) => {
228
641
  if (request.type !== 'tool_review') {
229
642
  return request.type === 'plan_approval' ? { action: 'approve_plan' } : { action: 'continue' };
230
643
  }
@@ -284,11 +697,7 @@ export function createReviewHandler(options = {}) {
284
697
  // prompt that showed only the shell command while the edits went
285
698
  // through beside it would be approving something it did not show.
286
699
  if (mode === 'accept-edits' &&
287
- request.toolCalls.every((tc) => !tc.authorization?.explicitReview &&
288
- tc.escalation === undefined &&
289
- !tc.isDestructive &&
290
- tc.requiresApproval !== true &&
291
- (ACCEPT_EDITS_TOOLS.has(tc.name) || exempt(tc.name, tc.input)))) {
700
+ (await Promise.all(request.toolCalls.map(acceptEditsAllows))).every(Boolean)) {
292
701
  return { action: 'approve_tools' };
293
702
  }
294
703
  // Ordinary reads were approved above. Remaining calls either change
@@ -304,6 +713,90 @@ export function createReviewHandler(options = {}) {
304
713
  }
305
714
  if (mode === 'strict')
306
715
  return { action: 'reject_tools', feedback: STRICT_MODE_REFUSAL };
716
+ if (isPermissive(mode)) {
717
+ // A person's answer on the whole batch, as a decision. An escape is
718
+ // confirmed by id only here, only for a person's yes.
719
+ const askPerson = async (escapes) => {
720
+ const answer = await ask();
721
+ if (answer.kind === 'reject') {
722
+ return {
723
+ action: 'reject_tools',
724
+ feedback: answer.feedback ?? DECLINED_TOOL_CALL_FEEDBACK,
725
+ ...(answer.declined ? { declined: answer.declined } : {}),
726
+ };
727
+ }
728
+ if (answer.kind === 'approve-all')
729
+ remembered.all = true;
730
+ return {
731
+ action: 'approve_tools',
732
+ ...(escapes.length > 0 ? { confirmedEscalations: escapes } : {}),
733
+ };
734
+ };
735
+ const live = request.toolCalls.filter((tc) => tc.authorization?.decision !== 'deny');
736
+ const escapes = live.filter((tc) => tc.escalation?.sandboxEscape === true).map((tc) => tc.id);
737
+ if (mode === 'classify') {
738
+ const classifier = options.classifier;
739
+ const transcript = context?.transcript() ?? [];
740
+ for (const tc of live) {
741
+ // The questions a person must answer are asked of a person, never of a model.
742
+ if (isBypassImmune(tc) || (await neverSent(tc)))
743
+ continue;
744
+ const decision = await classifier.review({
745
+ call: tc,
746
+ transcript,
747
+ ...(registry ? { tools: registry } : {}),
748
+ ...(context?.signal ? { signal: context.signal } : {}),
749
+ });
750
+ if (decision.verdict === 'allow') {
751
+ transcriptTooLong = false;
752
+ continue;
753
+ }
754
+ if (decision.verdict === 'too_long') {
755
+ if (!transcriptTooLong) {
756
+ transcriptTooLong = true;
757
+ options.onClassifierTranscriptTooLong?.();
758
+ return { action: 'reject_tools', feedback: CLASSIFIER_TRANSCRIPT_TOO_LONG_FEEDBACK };
759
+ }
760
+ // Still too long after the host was told: nobody can judge it
761
+ // automatically. A person decides, or the turn ends.
762
+ if (!prompt) {
763
+ return {
764
+ action: 'abort',
765
+ reason: 'auto mode stopped: the conversation is too long for the safety check',
766
+ };
767
+ }
768
+ return askPerson(escapes);
769
+ }
770
+ transcriptTooLong = false;
771
+ if (decision.limitReached !== undefined) {
772
+ options.onClassifierLimit?.({ limit: decision.limitReached, reason: decision.reason });
773
+ if (!prompt) {
774
+ return {
775
+ action: 'abort',
776
+ reason: `auto mode stopped: too many actions were blocked (${decision.reason})`,
777
+ };
778
+ }
779
+ return askPerson(escapes);
780
+ }
781
+ return {
782
+ action: 'reject_tools',
783
+ feedback: autoReviewBlockedFeedback(decision.reason),
784
+ };
785
+ }
786
+ }
787
+ if (!live.some(isBypassImmune))
788
+ return { action: 'approve_tools' };
789
+ if (!prompt) {
790
+ const refusal = immuneRefusal(live, options.unattendedSandboxEscape === 'allow');
791
+ if (refusal !== undefined)
792
+ return { action: 'reject_tools', feedback: refusal };
793
+ return {
794
+ action: 'approve_tools',
795
+ ...(escapes.length > 0 ? { confirmedEscalations: escapes } : {}),
796
+ };
797
+ }
798
+ return askPerson(escapes);
799
+ }
307
800
  // A sandbox escape is asked about every time, in every mode that got
308
801
  // this far — `auto` and a remembered "approve all" included, because
309
802
  // both are answers somebody gave BEFORE this command existed. The
@@ -1 +1 @@
1
- {"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,EAEN,aAAa,EACb,eAAe,GACf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAWpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAA6B,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AA+DvD,MAAM,CAAC,MAAM,YAAY,GAA0B;IAClD,QAAQ;IACR,cAAc;IACd,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;CACV,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxF,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAC/B,qMAAqM,CAAA;AAEtM,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAChE,aAAa;IACb,aAAa;IACb,aAAa;CACb,CAAC,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC7B,QAA+C,EAC/C,IAAY,EACZ,KAAc;IAEd,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACvC,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC9C,CAAC;AAID;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC/B,SAAqC,EACrC,MAAuB;IAEvB,OAAO,SAAS,CAAC,IAAI,CACpB,CAAC,EAAE,EAAE,EAAE,CACN,EAAE,CAAC,aAAa,EAAE,cAAc;QAChC,EAAE,CAAC,UAAU,KAAK,SAAS;QAC3B,EAAE,CAAC,aAAa;QAChB,EAAE,CAAC,gBAAgB,KAAK,IAAI;QAC5B,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAC3B,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC7B,SAAqC,EACrC,MAAuB;IAEvB,OAAO,SAAS,CAAC,KAAK,CACrB,CAAC,EAAE,EAAE,EAAE,CACN,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc;QACjC,CAAC,EAAE,CAAC,aAAa;QACjB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI;QACrC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAC1B,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC7C,oQAAoQ,CAAA;AAErQ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAC5C,+VAA+V,CAAA;AAEhW;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAChD,8SAA8S,CAAA;AAE/S;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC9C,oVAAoV,CAAA;AAErV;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC7C,4WAA4W,CAAA;AAE7W;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAChD,gbAAgb,CAAA;AAEjb;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACvC,8OAA8O,CAAA;AAE/O;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC/C,yOAAyO,CAAA;AAE1O,2FAA2F;AAC3F,MAAM,CAAC,MAAM,uCAAuC,GACnD,iLAAiL,CAAA;AAElL;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IACjE,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,eAAe;IACf,cAAc;IACd,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,gBAAgB;CAChB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACzD,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,SAAS;IACT,OAAO;IACP,WAAW;IACX,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,YAAY;IACZ,KAAK;IACL,SAAS;IACT,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACN,CAAC,CAAA;AAEF,6FAA6F;AAC7F,MAAM,4BAA4B,GAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAA;AAE5F;;;;GAIG;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACrD,KAAK;IACL,YAAY;IACZ,KAAK;IACL,KAAK;IACL,MAAM;IACN,GAAG;IACH,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,GAAG;IACH,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;CACT,CAAC,CAAA;AACF,MAAM,6BAA6B,GAA6C,IAAI,GAAG,CAAC;IACvF;QACC,MAAM;QACN,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9F;IACD,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjG;QACC,KAAK;QACL,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KACzF;CACD,CAAC,CAAA;AACF,iGAAiG;AACjG,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IACvD,IAAI;IACJ,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,IAAI;IACJ,IAAI;IACJ,aAAa;IACb,YAAY;IACZ,cAAc;IACd,SAAS;IACT,YAAY;IACZ,UAAU;IACV,MAAM;CACN,CAAC,CAAA;AAEF,2EAA2E;AAC3E,SAAS,MAAM,CAAC,IAA0B;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,IAAI,CAAC,CAAC,CAAe,CAAC,KAAK,CAAA;QAC1C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAA;QAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,gHAAgH;AAChH,SAAS,YAAY,CAAC,UAA2B;IAChD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;SAC7E,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACvB,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,KAAK;YACT,OAAO,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,0EAA0E;YAC1E,8CAA8C;YAC9C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACpC,OAAO,CAAE,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtF,CAAC;QACD,KAAK,IAAI;YACR,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,CAAA;QACzD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,IAAI;YACR,OAAO,IAAI,KAAK,KAAK,CAAA;QACtB,KAAK,KAAK;YACT,iFAAiF;YACjF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7E,KAAK,MAAM;YACV,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,gDAAgD,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAChE,CAAA;QACF;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED,8FAA8F;AAC9F,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IAChE,OAAO;IACP,aAAa;IACb,eAAe;CACf,CAAC,CAAA;AAEF,sGAAsG;AACtG,MAAM,CAAC,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IACvE,OAAO;IACP,OAAO;IACP,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,KAAK;CACL,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC7C,4QAA4Q,CAAA;AAE7Q,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gCAAgC,GAC5C,2KAA2K,CAAA;AAa5K;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAmB;IACzC,OAAO,CACN,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAChD,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS;QAC7C,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,SAAS,CAC5C,CAAA;AACF,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,SAAqC;IAC1D,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,iCAAiC,CAAA;IACzC,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS,CAAC;QAC3E,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,mCAAmC,CAAA;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAgB;IACvD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,CAAA;AAC9C,CAAC;AAED,qGAAqG;AACrG,SAAS,YAAY,CAAC,IAAgB;IACrC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAA;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAmB;IAC1C,OAAO,CACN,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI;QAClC,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI;QACrC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS;QAC7C,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,SAAS;QAC5C,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAC5B,CAAA;AACF,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CACrB,SAAqC,EACrC,eAAwB;IAExB,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC;QACvF,OAAO,iCAAiC,CAAA;IACzC,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS,CAAC,EAAE,CAAC;QAC3E,OAAO,oCAAoC,CAAA;IAC5C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,SAAS,CAAC,EAAE,CAAC;QAC1E,OAAO,mCAAmC,CAAA;IAC3C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,oCAAoC,CAAA;IAC5C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;QAAE,OAAO,2BAA2B,CAAA;IAClG,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,6GAA6G;AAC7G,MAAM,gBAAgB,GACrB,gHAAgH,CAAA;AAEjH;;;;;GAKG;AACH,SAAS,YAAY,CACpB,IAAsE;IAEtE,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAwC,CAAA;QAC1D,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,KAAK,CAAA;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAA;QACtB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAA;YACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC,IAAI,CAAC,CAAA;YACN,SAAQ;QACT,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;YAChD,SAAQ;QACT,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,mBAAmB;YAAE,OAAO,KAAK,CAAA;QAC5F,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IACC,CAAC,+FAA+F,CAAC,IAAI,CACpG,IAAI,CACJ,EACA,CAAC;gBACF,OAAO,KAAK,CAAA;YACb,CAAC;YACD,SAAQ;QACT,CAAC;QACD,UAAU,IAAI,CAAC,CAAA;QACf,IAAI,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/B,MAAM;SACJ,KAAK,CAAC,MAAM,CAAC;SACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACpC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAA;AACF,CAAC;AAwID;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAmB;IAC1C,OAAO,CACN,EAAE,CAAC,UAAU,KAAK,SAAS;QAC3B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc;QACjC,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM;QACrC,CAAC,EAAE,CAAC,aAAa;QACjB,EAAE,CAAC,UAAU,KAAK,SAAS;QAC3B,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAC5B,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,EAAmB;IACzC,OAAO,CACN,EAAE,CAAC,SAAS,KAAK,SAAS;QAC1B,EAAE,CAAC,cAAc,EAAE,QAAQ,KAAK,KAAK;QACrC,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc;QACjC,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM;QACrC,CAAC,EAAE,CAAC,aAAa;QACjB,EAAE,CAAC,UAAU,KAAK,SAAS;QAC3B,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAC5B,CAAA;AACF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,mBAAmB,CAAC,UAA+B,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACpC,MAAM,IAAI,GAAe,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAClB,+EAA+E,CAC/E,CAAA;IACF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACnF,gGAAgG;IAChG,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACzF,MAAM,QAAQ,GAAG,GAAsB,EAAE,CACxC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC9E,MAAM,MAAM,GACX,OAAO,CAAC,MAAM;QACd,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAClF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACvD,MAAM,cAAc,GACnB,OAAO,CAAC,cAAc;QACtB,CAAC,QAAQ;YACR,CAAC,CAAC,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;gBACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;gBACnE,OAAO,IAAI,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;YAC9C,CAAC;YACF,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAChB;;;;;;OAMG;IACH,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAmB,EAAoB,EAAE;QAChF,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAA;QAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACvC,IACC,EAAE,CAAC,UAAU,KAAK,SAAS;YAC3B,EAAE,CAAC,aAAa;YAChB,EAAE,CAAC,gBAAgB,KAAK,IAAI;YAC5B,EAAE,CAAC,aAAa,EAAE,cAAc;YAChC,EAAE,CAAC,aAAa,EAAE,OAAO,EACxB,CAAC;YACF,OAAO,KAAK,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,EAAE,eAAe,CAAA;QACtC,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAC9D,MAAM,IAAI,GAAI,EAAE,CAAC,KAAwC,EAAE,CAAC,QAAQ,CAAC,CAAA;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAA;QACnE,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QACnE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACvE,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI;gBAAE,SAAQ;YACzC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAA;YACtE,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAA;QACjF,CAAC;QACD,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAA;QAC7E,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7F,OAAO,CACN,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAC/B,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YACjC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CACpC,CAAA;IACF,CAAC,CAAA;IAED,2GAA2G;IAC3G,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAmB,EAAoB,EAAE,CACzE,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc;QACjC,EAAE,CAAC,UAAU,KAAK,SAAS;QAC3B,CAAC,EAAE,CAAC,aAAa;QACjB,EAAE,CAAC,gBAAgB,KAAK,IAAI;QAC5B,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC;YACzB,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEvC;;;;;;OAMG;IACH,MAAM,gBAAgB,GAAG,CAAC,EAAmB,EAAW,EAAE;QACzD,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,EAAE,eAAe,CAAA;QACtC,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAC9D,IAAI,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACxD,MAAM,IAAI,GAAI,EAAE,CAAC,KAAwC,EAAE,CAAC,QAAQ,CAAC,CAAA;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAA;QACxF,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnE,CAAC,CAAA;IAED,8GAA8G;IAC9G,MAAM,SAAS,GAAG,KAAK,EAAE,EAAmB,EAAoB,EAAE;QACjE,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;QAChF,6EAA6E;QAC7E,wEAAwE;QACxE,2EAA2E;QAC3E,uDAAuD;QACvD,IACC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,EAAE,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAChC,CAAC;YACF,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,IACC,EAAE,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,EAAE,CAAC,aAAa;YACjB,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc;YACjC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EACxB,CAAC;YACF,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;IAED,OAAO,KAAK,EAAE,OAAO,EAAE,OAAuB,EAA+B,EAAE;QAC9E,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;QAC9F,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,8DAA8D;QAC9D,IAAI,QAAsC,CAAA;QAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,aAAoB,EAA6B,EAAE,CACrE,QAAQ;YACP,MAA2B,CAAC;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC,CAAA;QACH,wEAAwE;QACxE,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;QAClD,IACC,OAAO;YACP,IAAI,KAAK,MAAM;YACf,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,OAAO,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,EAAE,EAAE,EAAE,CACN,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,OAAO;gBACtC,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM;gBACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAClC,EACA,CAAC;YACF,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAA;YACvF,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAA;YAC3F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,gCAAgC;oBAC7D,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAChC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,QAAQ,GAAG,MAAM,CAAA;QAClB,CAAC;QACD,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,eAAe,GAAG,CAAC,EAAmB,EAAW,EAAE,CACxD,IAAI,KAAK,MAAM;YACf,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI;YACpC,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM,CAAA;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAC1C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CACnE,CAAA;QACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,gEAAgE;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,iEAAiE;QACjE,kEAAkE;QAClE,IACC,IAAI,KAAK,cAAc;YACvB,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAC3E,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,kEAAkE;QAClE,IACC,IAAI,KAAK,MAAM;YACf,CAAC,qBAAqB,CACrB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,EAC/C,MAAM,CACN,EACA,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;QAC/D,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAA;QACvF,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,oEAAoE;YACpE,sDAAsD;YACtD,MAAM,SAAS,GAAG,KAAK,EAAE,OAA0B,EAA+B,EAAE;gBACnF,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;gBAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO;wBACN,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;wBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzD,CAAA;gBACF,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;oBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;gBACxD,OAAO;oBACN,MAAM,EAAE,eAAe;oBACvB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAA;YACF,CAAC,CAAA;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7F,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAkC,CAAA;gBAC7D,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;gBAC9C,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;oBACvB,8EAA8E;oBAC9E,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;wBAAE,SAAQ;oBACzD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;wBACxC,IAAI,EAAE,EAAE;wBACR,UAAU;wBACV,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtD,CAAC,CAAA;oBACF,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAClC,iBAAiB,GAAG,KAAK,CAAA;wBACzB,SAAQ;oBACT,CAAC;oBACD,IAAI,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACxB,iBAAiB,GAAG,IAAI,CAAA;4BACxB,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAA;4BACzC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,uCAAuC,EAAE,CAAA;wBACrF,CAAC;wBACD,8DAA8D;wBAC9D,qDAAqD;wBACrD,IAAI,CAAC,MAAM,EAAE,CAAC;4BACb,OAAO;gCACN,MAAM,EAAE,OAAO;gCACf,MAAM,EAAE,sEAAsE;6BAC9E,CAAA;wBACF,CAAC;wBACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAA;oBAC1B,CAAC;oBACD,iBAAiB,GAAG,KAAK,CAAA;oBACzB,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBACzC,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;wBACtF,IAAI,CAAC,MAAM,EAAE,CAAC;4BACb,OAAO;gCACN,MAAM,EAAE,OAAO;gCACf,MAAM,EAAE,qDAAqD,QAAQ,CAAC,MAAM,GAAG;6BAC/E,CAAA;wBACF,CAAC;wBACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAA;oBAC1B,CAAC;oBACD,OAAO;wBACN,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACpD,CAAA;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,uBAAuB,KAAK,OAAO,CAAC,CAAA;gBAChF,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;gBAC/E,OAAO;oBACN,MAAM,EAAE,eAAe;oBACvB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAA;YACF,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,kEAAkE;QAClE,mEAAmE;QACnE,iEAAiE;QACjE,8CAA8C;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS;aAC/B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;aACrD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,OAAO,CAAC,uBAAuB,KAAK,OAAO,EAAE,CAAC;oBACjD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAA;gBAC/E,CAAC;gBACD,oEAAoE;gBACpE,kEAAkE;gBAClE,+DAA+D;gBAC/D,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC3C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;gBAC7E,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACpF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAAA;gBAC9E,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,EAAE,CAAC;oBAClE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,oCAAoC,EAAE,CAAA;gBAClF,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC;oBACjF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAA;gBAChF,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAA;YAClE,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,kEAAkE;YAClE,kEAAkE;YAClE,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAA;QAClE,CAAC;QACD,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;YACzF,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,wEAAwE;YACxE,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,mEAAmE;QACnE,qEAAqE;QACrE,qEAAqE;QACrE,kDAAkD;QAClD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAAA;YAC1F,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,uEAAuE;YACvE,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,sEAAsE;QACtE,mEAAmE;QACnE,kEAAkE;QAClE,2DAA2D;QAC3D,qEAAqE;QACrE,+CAA+C;QAC/C,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,oCAAoC,EAAE,CAAA;YAC9F,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,8DAA8D;QAC9D,sEAAsE;QACtE,kEAAkE;QAClE,0DAA0D;QAC1D,qEAAqE;QACrE,iEAAiE;QACjE,kBAAkB;QAClB,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAA;YAC5F,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;YACF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YAClD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACnC,CAAC;QACD,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,kEAAkE;QAClE,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,EAAE,EAAE,EAAE,CACN,EAAE,CAAC,aAAa,EAAE,cAAc;YAChC,EAAE,CAAC,aAAa;YAChB,EAAE,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CACA,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC;gBACzB,CAAC,IAAI,KAAK,cAAc,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAC5D,CACF,CAAA;QACD,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAA;QACvD,IACC,QAAQ,KAAK,SAAS;YACtB,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EACrF,CAAC;YACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACnE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACjF,OAAO;gBACN,MAAM,EAAE,eAAe;gBACvB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAA;QACF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;QAC1B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,SAAS;gBACb,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;YACnC,KAAK,aAAa;gBACjB,UAAU,CAAC,GAAG,GAAG,IAAI,CAAA;gBACrB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;YACnC,KAAK,QAAQ;gBACZ,OAAO;oBACN,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAA;QACH,CAAC;IACF,CAAC,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IACnE,MAAM,IAAI,GAAe,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAC1E,CAAC"}