@mirnoorata/codexa 0.2.1 → 0.3.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 (91) hide show
  1. package/README.md +93 -29
  2. package/dist/cache-lock.js +72 -12
  3. package/dist/cache-lock.js.map +1 -1
  4. package/dist/cli/hooks.js +11 -6
  5. package/dist/cli/hooks.js.map +1 -1
  6. package/dist/cli.js +13 -4
  7. package/dist/cli.js.map +1 -1
  8. package/dist/graph.js +4 -2
  9. package/dist/graph.js.map +1 -1
  10. package/dist/implicit-baseline.d.ts +8 -0
  11. package/dist/implicit-baseline.js +94 -0
  12. package/dist/implicit-baseline.js.map +1 -0
  13. package/dist/init.d.ts +3 -0
  14. package/dist/init.js +124 -15
  15. package/dist/init.js.map +1 -1
  16. package/dist/mcp/compaction.d.ts +1 -0
  17. package/dist/mcp/compaction.js +24 -0
  18. package/dist/mcp/compaction.js.map +1 -1
  19. package/dist/mcp/envelope.d.ts +4 -1
  20. package/dist/mcp/envelope.js +45 -5
  21. package/dist/mcp/envelope.js.map +1 -1
  22. package/dist/mcp/prompts.d.ts +1 -1
  23. package/dist/mcp/prompts.js +5 -2
  24. package/dist/mcp/prompts.js.map +1 -1
  25. package/dist/mcp/tool-registry.d.ts +1 -0
  26. package/dist/mcp/tool-registry.js +5 -0
  27. package/dist/mcp/tool-registry.js.map +1 -1
  28. package/dist/mcp/tools.d.ts +1 -0
  29. package/dist/mcp/tools.js +6 -0
  30. package/dist/mcp/tools.js.map +1 -1
  31. package/dist/mcp-tool-catalog.d.ts +1 -1
  32. package/dist/mcp-tool-catalog.js +1 -1
  33. package/dist/mcp-tool-catalog.js.map +1 -1
  34. package/dist/mcp.js +31 -5
  35. package/dist/mcp.js.map +1 -1
  36. package/dist/query/post-edit/decision.d.ts +1 -0
  37. package/dist/query/post-edit/decision.js +13 -4
  38. package/dist/query/post-edit/decision.js.map +1 -1
  39. package/dist/query/post-edit.js +10 -2
  40. package/dist/query/post-edit.js.map +1 -1
  41. package/dist/query/verification/masking.d.ts +8 -0
  42. package/dist/query/verification/masking.js +82 -0
  43. package/dist/query/verification/masking.js.map +1 -0
  44. package/dist/query/verification/script-credit.d.ts +14 -0
  45. package/dist/query/verification/script-credit.js +232 -0
  46. package/dist/query/verification/script-credit.js.map +1 -0
  47. package/dist/query/verification/shell.d.ts +5 -1
  48. package/dist/query/verification/shell.js +288 -9
  49. package/dist/query/verification/shell.js.map +1 -1
  50. package/dist/query/verification.js +187 -21
  51. package/dist/query/verification.js.map +1 -1
  52. package/dist/query/workflow.js +2 -2
  53. package/dist/query/workflow.js.map +1 -1
  54. package/dist/repo-files.js +74 -14
  55. package/dist/repo-files.js.map +1 -1
  56. package/dist/resolver.js +20 -2
  57. package/dist/resolver.js.map +1 -1
  58. package/dist/retrieval.js +5 -5
  59. package/dist/retrieval.js.map +1 -1
  60. package/dist/task-snapshots.js +29 -0
  61. package/dist/task-snapshots.js.map +1 -1
  62. package/dist/types.d.ts +2 -0
  63. package/dist/types.js.map +1 -1
  64. package/dist/util.d.ts +1 -0
  65. package/dist/util.js +7 -0
  66. package/dist/util.js.map +1 -1
  67. package/integrations/.claude-plugin/marketplace.json +23 -0
  68. package/integrations/claude-code/.claude-plugin/plugin.json +16 -0
  69. package/integrations/claude-code/.mcp.json +8 -0
  70. package/integrations/claude-code/README.md +177 -0
  71. package/integrations/claude-code/commands/codexa-brief.md +14 -0
  72. package/integrations/claude-code/commands/codexa-impact.md +14 -0
  73. package/integrations/claude-code/commands/codexa-plan.md +20 -0
  74. package/integrations/claude-code/commands/codexa-review.md +23 -0
  75. package/integrations/claude-code/commands/codexa-status.md +10 -0
  76. package/integrations/claude-code/hooks/hooks.json +39 -0
  77. package/integrations/claude-code/scripts/cmd/brief.sh +18 -0
  78. package/integrations/claude-code/scripts/cmd/impact.sh +35 -0
  79. package/integrations/claude-code/scripts/cmd/lib.sh +136 -0
  80. package/integrations/claude-code/scripts/cmd/plan.sh +52 -0
  81. package/integrations/claude-code/scripts/cmd/review.sh +66 -0
  82. package/integrations/claude-code/scripts/cmd/status.sh +52 -0
  83. package/integrations/claude-code/scripts/codexa-mcp.js +111 -0
  84. package/integrations/claude-code/scripts/lib/codexa-repo.sh +773 -0
  85. package/integrations/claude-code/scripts/pre-edit.sh +116 -0
  86. package/integrations/claude-code/scripts/session-start.sh +201 -0
  87. package/integrations/claude-code/scripts/stop.sh +443 -0
  88. package/integrations/claude-code/tests/cmd-smoke.sh +310 -0
  89. package/integrations/claude-code/tests/hook-smoke.sh +1412 -0
  90. package/package.json +4 -2
  91. package/plugins/codexa/.codex-plugin/plugin.json +1 -1
@@ -1,15 +1,19 @@
1
- export type ShellControlOperator = "start" | "&&" | "||" | "|" | ";";
1
+ export type ShellControlOperator = "start" | "&&" | "||" | "|" | ";" | "&";
2
2
  export type ShellTruthiness = "true" | "false" | "unknown";
3
3
  export declare function splitShellSequence(command: string): Array<{
4
4
  text: string;
5
5
  operator: ShellControlOperator;
6
6
  }>;
7
+ export declare function stripCommandSubstitutions(command: string): string;
8
+ export declare function commandSubstitutionContents(command: string): string;
9
+ export declare function hasBalancedQuotes(command: string): boolean;
7
10
  export declare function segmentTruthiness(segment: string): ShellTruthiness;
8
11
  export declare function shellWords(value: string): string[];
9
12
  export declare function shellQuote(value: string): string;
10
13
  export declare function stripQuotes(value: string): string;
11
14
  export declare function isNonRunningCommand(words: string[]): boolean;
12
15
  export declare function shellWrappedCommand(words: string[]): string | undefined;
16
+ export declare function shellWrapperBodyIsAmbiguous(words: string[]): boolean;
13
17
  export declare function hasNonRunningJavaScriptTestArg(args: string[]): boolean;
14
18
  export declare function hasNonRunningPythonTestArg(args: string[]): boolean;
15
19
  export declare function hasNonRunningCommandArg(args: string[]): boolean;
@@ -3,6 +3,7 @@ export function splitShellSequence(command) {
3
3
  let quote;
4
4
  let current = "";
5
5
  let operator = "start";
6
+ command = stripCommentsAndHeredocs(command);
6
7
  for (let index = 0; index < command.length; index += 1) {
7
8
  const char = command[index];
8
9
  const next = command[index + 1];
@@ -15,24 +16,38 @@ export function splitShellSequence(command) {
15
16
  if (current.trim()) {
16
17
  segments.push({ text: current.trim(), operator });
17
18
  }
19
+ else if (operator === "&") {
20
+ // A pending background marker must survive a following separator
21
+ // (`cmd &\n`): flush it before the operator is overwritten, or the
22
+ // backgrounded runner would lose its masking.
23
+ segments.push({ text: "", operator });
24
+ }
18
25
  operator = char === "&" ? "&&" : "||";
19
26
  current = "";
20
27
  index += 1;
21
28
  continue;
22
29
  }
23
- if (!quote && char === "|") {
30
+ // A bare `&` backgrounds the preceding command, decoupling its exit code, in
31
+ // every position EXCEPT a redirection — like a real shell, `cmd&next` and
32
+ // `cmd&` background `cmd` regardless of surrounding whitespace. It is not a
33
+ // background only for `2>&1`/`>&2` (prev is `<`/`>`/`&`), `&>file` (next is
34
+ // `>`), the `&&` form (handled above), or an escaped `\&` (prev is `\`).
35
+ // Unquoted newlines terminate a command just like `;`.
36
+ const prev = command[index - 1];
37
+ const backgroundAmp = char === "&" && prev !== undefined && !/[<>&\\]/u.test(prev) && next !== ">";
38
+ if (!quote && (char === "|" || char === ";" || char === "\n" || char === "\r" || backgroundAmp)) {
24
39
  if (current.trim()) {
25
40
  segments.push({ text: current.trim(), operator });
26
41
  }
27
- operator = "|";
28
- current = "";
29
- continue;
30
- }
31
- if (!quote && char === ";") {
32
- if (current.trim()) {
33
- segments.push({ text: current.trim(), operator });
42
+ else if (operator === "&" && char !== "&") {
43
+ segments.push({ text: "", operator });
34
44
  }
35
- operator = ";";
45
+ else if ((char === "\n" || char === "\r") && (operator === "&&" || operator === "||" || operator === "|")) {
46
+ // Line continuation: `cmd &&\n next` — the newline does not terminate
47
+ // the command; the pending operator still binds the next segment.
48
+ continue;
49
+ }
50
+ operator = char === "|" ? "|" : char === "&" ? "&" : ";";
36
51
  current = "";
37
52
  continue;
38
53
  }
@@ -41,8 +56,253 @@ export function splitShellSequence(command) {
41
56
  if (current.trim()) {
42
57
  segments.push({ text: current.trim(), operator });
43
58
  }
59
+ else if (operator === "&") {
60
+ // Trailing `&` (e.g. `npm test &`) — preserve the background marker so
61
+ // callers can see the preceding runner's exit was decoupled.
62
+ segments.push({ text: "", operator });
63
+ }
44
64
  return segments;
45
65
  }
66
+ // Strip what a tokenizer must not mistake for commands: unquoted `#` comments
67
+ // (to end of line) and heredoc BODIES (`cat <<EOF ... EOF`). Both are removed
68
+ // in a single source-order pass so a `<<WORD` hidden inside a comment is never
69
+ // read as a real marker, and a comment can never absorb a pending operator.
70
+ // Quoting and `$(( ))` arithmetic are tracked so `2>&1`-style content, `||#`
71
+ // glued comments, `${#var}`, and `$((1 << 2))` are handled correctly. Dropped
72
+ // text only ever reduces credit (fail closed). Newlines are preserved as
73
+ // separators/continuations for the caller.
74
+ function stripCommentsAndHeredocs(command) {
75
+ if (!command.includes("#") && !command.includes("<<")) {
76
+ return command;
77
+ }
78
+ let out = "";
79
+ let quote;
80
+ let pos = 0;
81
+ while (pos < command.length) {
82
+ const newline = command.indexOf("\n", pos);
83
+ const hasNewline = newline !== -1;
84
+ const lineEnd = hasNewline ? newline : command.length;
85
+ const scanned = scanShellLine(command.slice(pos, lineEnd), quote);
86
+ quote = scanned.quote;
87
+ out += scanned.kept;
88
+ if (hasNewline) {
89
+ out += "\n";
90
+ }
91
+ pos = lineEnd + (hasNewline ? 1 : 0);
92
+ // Drop the body of each heredoc opened on this line, in order (`cmd <<A <<B`
93
+ // reads body A then body B). The delimiter line ends the body — leading tabs
94
+ // are stripped only for the `<<-` form, matching bash.
95
+ for (const marker of scanned.markers) {
96
+ while (pos < command.length) {
97
+ const bodyEnd = command.indexOf("\n", pos);
98
+ const hasBody = bodyEnd !== -1;
99
+ const bodyLine = command.slice(pos, hasBody ? bodyEnd : command.length).replace(/\r$/u, "");
100
+ pos = (hasBody ? bodyEnd : command.length) + (hasBody ? 1 : 0);
101
+ if ((marker.dash ? bodyLine.replace(/^\t+/u, "") : bodyLine) === marker.delimiter) {
102
+ break;
103
+ }
104
+ if (!hasBody) {
105
+ break;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ return out;
111
+ }
112
+ function scanShellLine(line, quoteIn) {
113
+ let kept = "";
114
+ let quote = quoteIn;
115
+ let arithParens = 0;
116
+ const markers = [];
117
+ for (let i = 0; i < line.length; i += 1) {
118
+ const char = line[i];
119
+ if (quote) {
120
+ kept += char;
121
+ if (char === quote && line[i - 1] !== "\\") {
122
+ quote = undefined;
123
+ }
124
+ continue;
125
+ }
126
+ if (char === "'" || char === '"') {
127
+ quote = char;
128
+ kept += char;
129
+ continue;
130
+ }
131
+ // A `#` only starts a comment at a word boundary (start, whitespace, or an
132
+ // operator) — not inside `file#1` or `${X#pat}`.
133
+ if (char === "#" && (i === 0 || /[\s;|&]/u.test(line[i - 1]))) {
134
+ break;
135
+ }
136
+ if (char === "$" && line[i + 1] === "(" && line[i + 2] === "(") {
137
+ arithParens += 2;
138
+ kept += "$((";
139
+ i += 2;
140
+ continue;
141
+ }
142
+ if (arithParens > 0) {
143
+ if (char === "(") {
144
+ arithParens += 1;
145
+ }
146
+ else if (char === ")") {
147
+ arithParens -= 1;
148
+ }
149
+ kept += char;
150
+ continue;
151
+ }
152
+ if (char === "<" && line[i + 1] === "<") {
153
+ if (line[i + 2] === "<") {
154
+ kept += "<<<";
155
+ i += 2;
156
+ continue;
157
+ }
158
+ // Match the FULL bash delimiter word (any run of non-blank shell-word
159
+ // chars: `EOF`, `EOF-1`, `EOF.txt`, digit-led `1-2`), so the body
160
+ // terminates only on an exact full-word line — capturing just a `\w+`
161
+ // prefix would end the body early and re-expose its data as commands.
162
+ // Arithmetic `$((1 << 2))` is already consumed above, so this cannot
163
+ // misfire on a shift.
164
+ const marker = /^<<(-?)[ \t]*(['"]?)([^\s'"`<>|&;()]+)\2/u.exec(line.slice(i));
165
+ if (marker) {
166
+ markers.push({ delimiter: marker[3], dash: marker[1] === "-" });
167
+ kept += marker[0];
168
+ i += marker[0].length - 1;
169
+ continue;
170
+ }
171
+ }
172
+ kept += char;
173
+ }
174
+ return { kept, quote, markers };
175
+ }
176
+ // Remove `$(...)` (depth-tracked) and backtick command-substitution spans that
177
+ // are not single-quoted literals. A command inside a substitution never directly
178
+ // decides the script's exit, so name-credit matching must not see it; the text
179
+ // outside substitutions is returned intact. Follows shell quoting: `'` is a
180
+ // literal inside double quotes (an apostrophe must not flip quote state), `"`
181
+ // is a literal inside single quotes, substitutions still expand inside double
182
+ // quotes, and quotes inside a substitution shield its parens from depth
183
+ // counting. Unbalanced spans strip to the end (fail closed: less text to match
184
+ // means less credit).
185
+ export function stripCommandSubstitutions(command) {
186
+ return scanCommandSubstitutions(command).outside;
187
+ }
188
+ // The text INSIDE `$(...)`/backtick substitutions — what a script discards when
189
+ // a non-running carrier wraps them. Callers use it to ask whether the discarded
190
+ // command looks like a named check.
191
+ export function commandSubstitutionContents(command) {
192
+ return scanCommandSubstitutions(command).inside;
193
+ }
194
+ // Each removed substitution leaves a sentinel token in the outside text so
195
+ // stripping can never glue two surrounding words into a phrase that was not in
196
+ // the command (`vite $(X) build` must not fabricate a `vite build` match).
197
+ const SUBSTITUTION_SENTINEL = "__codexa_substitution__";
198
+ function scanCommandSubstitutions(command) {
199
+ let outside = "";
200
+ let inside = "";
201
+ let quote;
202
+ let outerQuote;
203
+ let backtick = false;
204
+ let depth = 0;
205
+ for (let index = 0; index < command.length; index += 1) {
206
+ const char = command[index];
207
+ if (char === "\\" && quote !== "'") {
208
+ if (depth === 0 && !backtick) {
209
+ outside += char + (command[index + 1] ?? "");
210
+ }
211
+ else {
212
+ inside += char + (command[index + 1] ?? "");
213
+ }
214
+ index += 1;
215
+ continue;
216
+ }
217
+ if ((char === "'" || char === '"') && (quote === undefined || quote === char)) {
218
+ quote = quote === char ? undefined : char;
219
+ if (depth === 0 && !backtick) {
220
+ outside += char;
221
+ }
222
+ else {
223
+ inside += char;
224
+ }
225
+ continue;
226
+ }
227
+ if (quote === "'") {
228
+ if (depth === 0 && !backtick) {
229
+ outside += char;
230
+ }
231
+ else {
232
+ inside += char;
233
+ }
234
+ continue;
235
+ }
236
+ if (char === "`") {
237
+ backtick = !backtick;
238
+ if (!backtick) {
239
+ outside += SUBSTITUTION_SENTINEL;
240
+ inside += "\n";
241
+ }
242
+ continue;
243
+ }
244
+ if (backtick) {
245
+ inside += char;
246
+ continue;
247
+ }
248
+ if (char === "$" && command[index + 1] === "(") {
249
+ if (depth === 0) {
250
+ // The substitution opens a fresh quoting context; remember the outer
251
+ // double-quote state so it resumes when the substitution closes.
252
+ outerQuote = quote;
253
+ quote = undefined;
254
+ }
255
+ depth += 1;
256
+ index += 1;
257
+ continue;
258
+ }
259
+ if (depth > 0) {
260
+ if (quote === undefined) {
261
+ if (char === "(") {
262
+ depth += 1;
263
+ }
264
+ else if (char === ")") {
265
+ depth -= 1;
266
+ if (depth === 0) {
267
+ quote = outerQuote;
268
+ outside += SUBSTITUTION_SENTINEL;
269
+ inside += "\n";
270
+ continue;
271
+ }
272
+ }
273
+ }
274
+ inside += char;
275
+ continue;
276
+ }
277
+ outside += char;
278
+ }
279
+ if (depth > 0 || backtick) {
280
+ // Unbalanced span stripped to the end — still mark that one was here.
281
+ outside += SUBSTITUTION_SENTINEL;
282
+ }
283
+ return { outside, inside };
284
+ }
285
+ // True when single/double quotes in a command string are balanced. The word
286
+ // tokenizer cannot represent nested quoting, so a doubly shell-wrapped command
287
+ // unwraps to a mangled, unbalanced inner string whose masking operators are lost
288
+ // on re-tokenization; callers treat an unbalanced result as unverifiable.
289
+ export function hasBalancedQuotes(command) {
290
+ let quote;
291
+ for (let index = 0; index < command.length; index += 1) {
292
+ const char = command[index];
293
+ if (char === "\\" && quote !== "'") {
294
+ index += 1;
295
+ continue;
296
+ }
297
+ if (quote === undefined && (char === "'" || char === '"')) {
298
+ quote = char;
299
+ }
300
+ else if (char === quote) {
301
+ quote = undefined;
302
+ }
303
+ }
304
+ return quote === undefined;
305
+ }
46
306
  export function segmentTruthiness(segment) {
47
307
  const words = stripShellControlWords(stripLeadingEnvironment(shellWords(segment)));
48
308
  const first = words[0];
@@ -88,6 +348,25 @@ export function shellWrappedCommand(words) {
88
348
  }
89
349
  return undefined;
90
350
  }
351
+ // True when a shell wrapper's `-c` body could not be cleanly isolated. A
352
+ // well-formed `sh -c "<body>"` keeps the whole body in one token, so any extra
353
+ // tokens after it mean the tokenizer split a body containing escaped/nested
354
+ // quotes it cannot represent (e.g. `bash -lc "npm test --grep \"x\" || true"`).
355
+ // The extracted body is then a truncated prefix that silently drops a trailing
356
+ // mask, so callers must fail closed instead of analyzing it.
357
+ export function shellWrapperBodyIsAmbiguous(words) {
358
+ const first = words[0];
359
+ if (first !== "bash" && first !== "sh" && first !== "zsh") {
360
+ return false;
361
+ }
362
+ for (let index = 1; index < words.length; index += 1) {
363
+ const word = words[index];
364
+ if (word === "-c" || word === "-lc" || word === "-cl" || (word.startsWith("-") && word.includes("c"))) {
365
+ return index + 2 < words.length;
366
+ }
367
+ }
368
+ return false;
369
+ }
91
370
  export function hasNonRunningJavaScriptTestArg(args) {
92
371
  return args.some((arg) => ["--version", "-v", "-V", "--help", "-h", "help"].includes(arg));
93
372
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/query/verification/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/query/verification/shell.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,QAAQ,GAA4D,EAAE,CAAC;IAC7E,IAAI,KAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAyB,OAAO,CAAC;IAC7C,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;YACnD,OAAO,IAAI,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACjF,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC5B,iEAAiE;gBACjE,mEAAmE;gBACnE,8CAA8C;gBAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACtC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,6EAA6E;QAC7E,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,uDAAuD;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;QACnG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC;YAChG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,QAAQ,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5G,sEAAsE;gBACtE,kEAAkE;gBAClE,SAAS;YACX,CAAC;YACD,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC5B,uEAAuE;QACvE,6DAA6D;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,2CAA2C;AAC3C,SAAS,wBAAwB,CAAC,OAAe;IAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAA4B,CAAC;IACjC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;QACD,GAAG,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,6EAA6E;QAC7E,6EAA6E;QAC7E,uDAAuD;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5F,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClF,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,OAA8B;IACjE,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,OAAO,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAgD,EAAE,CAAC;IAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,IAAI,IAAI,CAAC;YACb,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC3C,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,IAAI,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QACD,2EAA2E;QAC3E,iDAAiD;QACjD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/D,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,KAAK,CAAC;YACd,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,WAAW,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,WAAW,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,IAAI,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,IAAI,KAAK,CAAC;gBACd,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,sEAAsE;YACtE,kEAAkE;YAClE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,sBAAsB;YACtB,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAChE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,IAAI,IAAI,CAAC;IACf,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,+EAA+E;AAC/E,sBAAsB;AACtB,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,oCAAoC;AACpC,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAExD,SAAS,wBAAwB,CAAC,OAAe;IAC/C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAA4B,CAAC;IACjC,IAAI,UAAiC,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9E,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,IAAI,qBAAqB,CAAC;gBACjC,MAAM,IAAI,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,qEAAqE;gBACrE,iEAAiE;gBACjE,UAAU,GAAG,KAAK,CAAC;gBACnB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjB,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACxB,KAAK,IAAI,CAAC,CAAC;oBACX,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBAChB,KAAK,GAAG,UAAU,CAAC;wBACnB,OAAO,IAAI,qBAAqB,CAAC;wBACjC,MAAM,IAAI,IAAI,CAAC;wBACf,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,IAAI,qBAAqB,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,4EAA4E;AAC5E,+EAA+E;AAC/E,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,KAA4B,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChI,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtG,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,UAAU,2BAA2B,CAAC,KAAe;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtG,OAAO,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAc;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAc;IACpD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAe;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtF,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAe;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACjM,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,EAAE,CAAC;YAClG,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrE,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAe;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,OAAO,CAAC,KAAK,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB,EAAE,KAAe;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}