@google/gemini-cli-core 0.10.0-nightly.20251013.f68f27e7 → 0.10.0-nightly.20251014.49b66733

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 (94) hide show
  1. package/dist/src/agents/codebase-investigator.js +3 -4
  2. package/dist/src/agents/codebase-investigator.js.map +1 -1
  3. package/dist/src/agents/executor.js +1 -1
  4. package/dist/src/agents/executor.js.map +1 -1
  5. package/dist/src/agents/executor.test.js +129 -44
  6. package/dist/src/agents/executor.test.js.map +1 -1
  7. package/dist/src/agents/registry.js +22 -1
  8. package/dist/src/agents/registry.js.map +1 -1
  9. package/dist/src/code_assist/oauth-credential-storage.js +1 -1
  10. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  11. package/dist/src/code_assist/oauth2.test.js +14 -13
  12. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  13. package/dist/src/config/config.d.ts +16 -3
  14. package/dist/src/config/config.js +18 -7
  15. package/dist/src/config/config.js.map +1 -1
  16. package/dist/src/config/config.test.js +15 -36
  17. package/dist/src/config/config.test.js.map +1 -1
  18. package/dist/src/config/storage.d.ts +0 -1
  19. package/dist/src/config/storage.js +2 -2
  20. package/dist/src/config/storage.js.map +1 -1
  21. package/dist/src/config/storage.test.js +7 -6
  22. package/dist/src/config/storage.test.js.map +1 -1
  23. package/dist/src/core/client.js +7 -0
  24. package/dist/src/core/client.js.map +1 -1
  25. package/dist/src/core/client.test.js +37 -4
  26. package/dist/src/core/client.test.js.map +1 -1
  27. package/dist/src/core/coreToolScheduler.js +12 -12
  28. package/dist/src/core/coreToolScheduler.js.map +1 -1
  29. package/dist/src/core/coreToolScheduler.test.js +227 -0
  30. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  31. package/dist/src/core/geminiChat.d.ts +1 -11
  32. package/dist/src/core/geminiChat.js +3 -56
  33. package/dist/src/core/geminiChat.js.map +1 -1
  34. package/dist/src/core/geminiChat.test.js +39 -210
  35. package/dist/src/core/geminiChat.test.js.map +1 -1
  36. package/dist/src/core/logger.test.js +2 -2
  37. package/dist/src/core/logger.test.js.map +1 -1
  38. package/dist/src/core/nonInteractiveToolExecutor.d.ts +3 -2
  39. package/dist/src/core/nonInteractiveToolExecutor.js +2 -2
  40. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  41. package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -8
  42. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  43. package/dist/src/core/prompts.js +23 -162
  44. package/dist/src/core/prompts.js.map +1 -1
  45. package/dist/src/core/prompts.test.js +14 -20
  46. package/dist/src/core/prompts.test.js.map +1 -1
  47. package/dist/src/core/subagent.js +1 -1
  48. package/dist/src/core/subagent.js.map +1 -1
  49. package/dist/src/core/subagent.test.js +38 -12
  50. package/dist/src/core/subagent.test.js.map +1 -1
  51. package/dist/src/generated/git-commit.d.ts +2 -2
  52. package/dist/src/generated/git-commit.js +2 -2
  53. package/dist/src/ide/process-utils.js +85 -75
  54. package/dist/src/ide/process-utils.js.map +1 -1
  55. package/dist/src/ide/process-utils.test.js +83 -90
  56. package/dist/src/ide/process-utils.test.js.map +1 -1
  57. package/dist/src/mcp/token-storage/file-token-storage.js +2 -1
  58. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  59. package/dist/src/mcp/token-storage/file-token-storage.test.js +4 -3
  60. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
  61. package/dist/src/services/shellExecutionService.js +9 -9
  62. package/dist/src/services/shellExecutionService.js.map +1 -1
  63. package/dist/src/services/shellExecutionService.test.js +16 -11
  64. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  65. package/dist/src/tools/mcp-client.js +1 -3
  66. package/dist/src/tools/mcp-client.js.map +1 -1
  67. package/dist/src/tools/memoryTool.d.ts +1 -1
  68. package/dist/src/tools/memoryTool.js +1 -2
  69. package/dist/src/tools/memoryTool.js.map +1 -1
  70. package/dist/src/tools/memoryTool.test.js +9 -8
  71. package/dist/src/tools/memoryTool.test.js.map +1 -1
  72. package/dist/src/tools/shell.js +8 -10
  73. package/dist/src/tools/shell.js.map +1 -1
  74. package/dist/src/tools/shell.test.js +24 -7
  75. package/dist/src/tools/shell.test.js.map +1 -1
  76. package/dist/src/utils/getFolderStructure.test.js +7 -6
  77. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  78. package/dist/src/utils/installationManager.test.js +2 -1
  79. package/dist/src/utils/installationManager.test.js.map +1 -1
  80. package/dist/src/utils/retry.d.ts +2 -1
  81. package/dist/src/utils/retry.js +12 -4
  82. package/dist/src/utils/retry.js.map +1 -1
  83. package/dist/src/utils/retry.test.js +32 -8
  84. package/dist/src/utils/retry.test.js.map +1 -1
  85. package/dist/src/utils/shell-utils.d.ts +2 -2
  86. package/dist/src/utils/shell-utils.js +275 -136
  87. package/dist/src/utils/shell-utils.js.map +1 -1
  88. package/dist/src/utils/shell-utils.test.js +126 -60
  89. package/dist/src/utils/shell-utils.test.js.map +1 -1
  90. package/dist/src/utils/userAccountManager.test.js +2 -1
  91. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  92. package/dist/tsconfig.tsbuildinfo +1 -1
  93. package/package.json +5 -3
  94. package/dist/google-gemini-cli-core-0.10.0-nightly.20251007.c195a9aa.tgz +0 -0
@@ -3,11 +3,251 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { createRequire as createModuleRequire } from 'node:module';
6
7
  import os from 'node:os';
7
8
  import { quote } from 'shell-quote';
8
9
  import { doesToolInvocationMatch } from './tool-utils.js';
9
- import { spawn } from 'node:child_process';
10
+ import { spawn, spawnSync, } from 'node:child_process';
11
+ import { Language, Parser } from 'web-tree-sitter';
10
12
  export const SHELL_TOOL_NAMES = ['run_shell_command', 'ShellTool'];
13
+ const requireModule = createModuleRequire(import.meta.url);
14
+ let bashLanguage = null;
15
+ let treeSitterInitialization = null;
16
+ async function loadBashLanguage() {
17
+ try {
18
+ const treeSitterWasmPath = requireModule.resolve('web-tree-sitter/tree-sitter.wasm');
19
+ const bashWasmPath = requireModule.resolve('tree-sitter-bash/tree-sitter-bash.wasm');
20
+ await Parser.init({
21
+ locateFile() {
22
+ return treeSitterWasmPath;
23
+ },
24
+ });
25
+ bashLanguage = await Language.load(bashWasmPath);
26
+ }
27
+ catch {
28
+ bashLanguage = null;
29
+ }
30
+ }
31
+ export async function initializeShellParsers() {
32
+ if (!treeSitterInitialization) {
33
+ treeSitterInitialization = loadBashLanguage().catch(() => {
34
+ // Swallow errors; bashLanguage will remain null.
35
+ });
36
+ }
37
+ try {
38
+ await treeSitterInitialization;
39
+ }
40
+ catch {
41
+ // Initialization errors are non-fatal; parsing will gracefully fall back.
42
+ }
43
+ }
44
+ const POWERSHELL_COMMAND_ENV = '__GCLI_POWERSHELL_COMMAND__';
45
+ // Encode the parser script as UTF-16LE base64 so we can pass it via PowerShell's -EncodedCommand flag;
46
+ // this avoids brittle quoting/escaping when spawning PowerShell and ensures the script is received byte-for-byte.
47
+ const POWERSHELL_PARSER_SCRIPT = Buffer.from(`
48
+ $ErrorActionPreference = 'Stop'
49
+ $commandText = $env:${POWERSHELL_COMMAND_ENV}
50
+ if ([string]::IsNullOrEmpty($commandText)) {
51
+ Write-Output '{"success":false}'
52
+ exit 0
53
+ }
54
+ $tokens = $null
55
+ $errors = $null
56
+ $ast = [System.Management.Automation.Language.Parser]::ParseInput($commandText, [ref]$tokens, [ref]$errors)
57
+ if ($errors -and $errors.Count -gt 0) {
58
+ Write-Output '{"success":false}'
59
+ exit 0
60
+ }
61
+ $commandAsts = $ast.FindAll({ param($node) $node -is [System.Management.Automation.Language.CommandAst] }, $true)
62
+ $commandObjects = @()
63
+ foreach ($commandAst in $commandAsts) {
64
+ $name = $commandAst.GetCommandName()
65
+ if ([string]::IsNullOrWhiteSpace($name)) {
66
+ continue
67
+ }
68
+ $commandObjects += [PSCustomObject]@{
69
+ name = $name
70
+ text = $commandAst.Extent.Text.Trim()
71
+ }
72
+ }
73
+ [PSCustomObject]@{
74
+ success = $true
75
+ commands = $commandObjects
76
+ } | ConvertTo-Json -Compress
77
+ `, 'utf16le').toString('base64');
78
+ function createParser() {
79
+ if (!bashLanguage) {
80
+ return null;
81
+ }
82
+ try {
83
+ const parser = new Parser();
84
+ parser.setLanguage(bashLanguage);
85
+ return parser;
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ }
91
+ function parseCommandTree(command) {
92
+ const parser = createParser();
93
+ if (!parser || !command.trim()) {
94
+ return null;
95
+ }
96
+ try {
97
+ return parser.parse(command);
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ function normalizeCommandName(raw) {
104
+ if (raw.length >= 2) {
105
+ const first = raw[0];
106
+ const last = raw[raw.length - 1];
107
+ if ((first === '"' && last === '"') || (first === "'" && last === "'")) {
108
+ return raw.slice(1, -1);
109
+ }
110
+ }
111
+ const trimmed = raw.trim();
112
+ if (!trimmed) {
113
+ return trimmed;
114
+ }
115
+ return trimmed.split(/[\\/]/).pop() ?? trimmed;
116
+ }
117
+ function extractNameFromNode(node) {
118
+ switch (node.type) {
119
+ case 'command': {
120
+ const nameNode = node.childForFieldName('name');
121
+ if (!nameNode) {
122
+ return null;
123
+ }
124
+ return normalizeCommandName(nameNode.text);
125
+ }
126
+ case 'declaration_command':
127
+ case 'unset_command':
128
+ case 'test_command': {
129
+ const firstChild = node.child(0);
130
+ if (!firstChild) {
131
+ return null;
132
+ }
133
+ return normalizeCommandName(firstChild.text);
134
+ }
135
+ default:
136
+ return null;
137
+ }
138
+ }
139
+ function collectCommandDetails(root, source) {
140
+ const stack = [root];
141
+ const details = [];
142
+ while (stack.length > 0) {
143
+ const current = stack.pop();
144
+ if (!current) {
145
+ continue;
146
+ }
147
+ const commandName = extractNameFromNode(current);
148
+ if (commandName) {
149
+ details.push({
150
+ name: commandName,
151
+ text: source.slice(current.startIndex, current.endIndex).trim(),
152
+ });
153
+ }
154
+ for (let i = current.namedChildCount - 1; i >= 0; i -= 1) {
155
+ const child = current.namedChild(i);
156
+ if (child) {
157
+ stack.push(child);
158
+ }
159
+ }
160
+ }
161
+ return details;
162
+ }
163
+ function parseBashCommandDetails(command) {
164
+ if (!bashLanguage) {
165
+ void initializeShellParsers();
166
+ }
167
+ const tree = parseCommandTree(command);
168
+ if (!tree) {
169
+ return null;
170
+ }
171
+ const details = collectCommandDetails(tree.rootNode, command);
172
+ return {
173
+ details,
174
+ hasError: tree.rootNode.hasError || details.length === 0,
175
+ };
176
+ }
177
+ function parsePowerShellCommandDetails(command, executable) {
178
+ const trimmed = command.trim();
179
+ if (!trimmed) {
180
+ return {
181
+ details: [],
182
+ hasError: true,
183
+ };
184
+ }
185
+ try {
186
+ const result = spawnSync(executable, [
187
+ '-NoLogo',
188
+ '-NoProfile',
189
+ '-NonInteractive',
190
+ '-EncodedCommand',
191
+ POWERSHELL_PARSER_SCRIPT,
192
+ ], {
193
+ env: {
194
+ ...process.env,
195
+ [POWERSHELL_COMMAND_ENV]: command,
196
+ },
197
+ encoding: 'utf-8',
198
+ maxBuffer: 1024 * 1024,
199
+ });
200
+ if (result.error || result.status !== 0) {
201
+ return null;
202
+ }
203
+ const output = (result.stdout ?? '').toString().trim();
204
+ if (!output) {
205
+ return { details: [], hasError: true };
206
+ }
207
+ let parsed = null;
208
+ try {
209
+ parsed = JSON.parse(output);
210
+ }
211
+ catch {
212
+ return { details: [], hasError: true };
213
+ }
214
+ if (!parsed?.success) {
215
+ return { details: [], hasError: true };
216
+ }
217
+ const details = (parsed.commands ?? [])
218
+ .map((commandDetail) => {
219
+ if (!commandDetail || typeof commandDetail.name !== 'string') {
220
+ return null;
221
+ }
222
+ const name = normalizeCommandName(commandDetail.name);
223
+ const text = typeof commandDetail.text === 'string'
224
+ ? commandDetail.text.trim()
225
+ : command;
226
+ return {
227
+ name,
228
+ text,
229
+ };
230
+ })
231
+ .filter((detail) => detail !== null);
232
+ return {
233
+ details,
234
+ hasError: details.length === 0,
235
+ };
236
+ }
237
+ catch {
238
+ return null;
239
+ }
240
+ }
241
+ function parseCommandDetails(command) {
242
+ const configuration = getShellConfiguration();
243
+ if (configuration.shell === 'powershell') {
244
+ return parsePowerShellCommandDetails(command, configuration.executable);
245
+ }
246
+ if (configuration.shell === 'bash') {
247
+ return parseBashCommandDetails(command);
248
+ }
249
+ return null;
250
+ }
11
251
  /**
12
252
  * Determines the appropriate shell configuration for the current platform.
13
253
  *
@@ -18,28 +258,23 @@ export const SHELL_TOOL_NAMES = ['run_shell_command', 'ShellTool'];
18
258
  */
19
259
  export function getShellConfiguration() {
20
260
  if (isWindows()) {
21
- const comSpec = process.env['ComSpec'] || 'cmd.exe';
22
- const executable = comSpec.toLowerCase();
23
- if (executable.endsWith('powershell.exe') ||
24
- executable.endsWith('pwsh.exe')) {
25
- // For PowerShell, the arguments are different.
26
- // -NoProfile: Speeds up startup.
27
- // -Command: Executes the following command.
28
- return {
29
- executable: comSpec,
30
- argsPrefix: ['-NoProfile', '-Command'],
31
- shell: 'powershell',
32
- };
261
+ const comSpec = process.env['ComSpec'];
262
+ if (comSpec) {
263
+ const executable = comSpec.toLowerCase();
264
+ if (executable.endsWith('powershell.exe') ||
265
+ executable.endsWith('pwsh.exe')) {
266
+ return {
267
+ executable: comSpec,
268
+ argsPrefix: ['-NoProfile', '-Command'],
269
+ shell: 'powershell',
270
+ };
271
+ }
33
272
  }
34
- // Default to cmd.exe for anything else on Windows.
35
- // Flags for CMD:
36
- // /d: Skip execution of AutoRun commands.
37
- // /s: Modifies the treatment of the command string (important for quoting).
38
- // /c: Carries out the command specified by the string and then terminates.
273
+ // Default to PowerShell for all other Windows configurations.
39
274
  return {
40
- executable: comSpec,
41
- argsPrefix: ['/d', '/s', '/c'],
42
- shell: 'cmd',
275
+ executable: 'powershell.exe',
276
+ argsPrefix: ['-NoProfile', '-Command'],
277
+ shell: 'powershell',
43
278
  };
44
279
  }
45
280
  // Unix-like systems (Linux, macOS)
@@ -81,49 +316,11 @@ export function escapeShellArg(arg, shell) {
81
316
  * @returns An array of individual command strings
82
317
  */
83
318
  export function splitCommands(command) {
84
- const commands = [];
85
- let currentCommand = '';
86
- let inSingleQuotes = false;
87
- let inDoubleQuotes = false;
88
- let i = 0;
89
- while (i < command.length) {
90
- const char = command[i];
91
- const nextChar = command[i + 1];
92
- if (char === '\\' && i < command.length - 1) {
93
- currentCommand += char + command[i + 1];
94
- i += 2;
95
- continue;
96
- }
97
- if (char === "'" && !inDoubleQuotes) {
98
- inSingleQuotes = !inSingleQuotes;
99
- }
100
- else if (char === '"' && !inSingleQuotes) {
101
- inDoubleQuotes = !inDoubleQuotes;
102
- }
103
- if (!inSingleQuotes && !inDoubleQuotes) {
104
- if ((char === '&' && nextChar === '&') ||
105
- (char === '|' && nextChar === '|')) {
106
- commands.push(currentCommand.trim());
107
- currentCommand = '';
108
- i++; // Skip the next character
109
- }
110
- else if (char === ';' || char === '&' || char === '|') {
111
- commands.push(currentCommand.trim());
112
- currentCommand = '';
113
- }
114
- else {
115
- currentCommand += char;
116
- }
117
- }
118
- else {
119
- currentCommand += char;
120
- }
121
- i++;
122
- }
123
- if (currentCommand.trim()) {
124
- commands.push(currentCommand.trim());
319
+ const parsed = parseCommandDetails(command);
320
+ if (!parsed || parsed.hasError) {
321
+ return [];
125
322
  }
126
- return commands.filter(Boolean); // Filter out any empty strings
323
+ return parsed.details.map((detail) => detail.text).filter(Boolean);
127
324
  }
128
325
  /**
129
326
  * Extracts the root command from a given shell command string.
@@ -134,36 +331,24 @@ export function splitCommands(command) {
134
331
  * @example getCommandRoot("git status && npm test") returns "git"
135
332
  */
136
333
  export function getCommandRoot(command) {
137
- const trimmedCommand = command.trim();
138
- if (!trimmedCommand) {
334
+ const parsed = parseCommandDetails(command);
335
+ if (!parsed || parsed.hasError || parsed.details.length === 0) {
139
336
  return undefined;
140
337
  }
141
- // This regex is designed to find the first "word" of a command,
142
- // while respecting quotes. It looks for a sequence of non-whitespace
143
- // characters that are not inside quotes.
144
- const match = trimmedCommand.match(/^"([^"]+)"|^'([^']+)'|^(\S+)/);
145
- if (match) {
146
- // The first element in the match array is the full match.
147
- // The subsequent elements are the capture groups.
148
- // We prefer a captured group because it will be unquoted.
149
- const commandRoot = match[1] || match[2] || match[3];
150
- if (commandRoot) {
151
- // If the command is a path, return the last component.
152
- return commandRoot.split(/[\\/]/).pop();
153
- }
154
- }
155
- return undefined;
338
+ return parsed.details[0]?.name;
156
339
  }
157
340
  export function getCommandRoots(command) {
158
341
  if (!command) {
159
342
  return [];
160
343
  }
161
- return splitCommands(command)
162
- .map((c) => getCommandRoot(c))
163
- .filter((c) => !!c);
344
+ const parsed = parseCommandDetails(command);
345
+ if (!parsed || parsed.hasError) {
346
+ return [];
347
+ }
348
+ return parsed.details.map((detail) => detail.name).filter(Boolean);
164
349
  }
165
350
  export function stripShellWrapper(command) {
166
- const pattern = /^\s*(?:sh|bash|zsh|cmd.exe)\s+(?:\/c|-c)\s+/;
351
+ const pattern = /^\s*(?:(?:sh|bash|zsh)\s+-c|cmd\.exe\s+\/c|powershell(?:\.exe)?\s+(?:-NoProfile\s+)?-Command|pwsh(?:\.exe)?\s+(?:-NoProfile\s+)?-Command)\s+/i;
167
352
  const match = command.match(pattern);
168
353
  if (match) {
169
354
  let newCommand = command.substring(match[0].length).trim();
@@ -183,54 +368,6 @@ export function stripShellWrapper(command) {
183
368
  * @param command The shell command string to check
184
369
  * @returns true if command substitution would be executed by bash
185
370
  */
186
- export function detectCommandSubstitution(command) {
187
- let inSingleQuotes = false;
188
- let inDoubleQuotes = false;
189
- let inBackticks = false;
190
- let i = 0;
191
- while (i < command.length) {
192
- const char = command[i];
193
- const nextChar = command[i + 1];
194
- // Handle escaping - only works outside single quotes
195
- if (char === '\\' && !inSingleQuotes) {
196
- i += 2; // Skip the escaped character
197
- continue;
198
- }
199
- // Handle quote state changes
200
- if (char === "'" && !inDoubleQuotes && !inBackticks) {
201
- inSingleQuotes = !inSingleQuotes;
202
- }
203
- else if (char === '"' && !inSingleQuotes && !inBackticks) {
204
- inDoubleQuotes = !inDoubleQuotes;
205
- }
206
- else if (char === '`' && !inSingleQuotes) {
207
- // Backticks work outside single quotes (including in double quotes)
208
- inBackticks = !inBackticks;
209
- }
210
- // Check for command substitution patterns that would be executed
211
- if (!inSingleQuotes) {
212
- // $(...) command substitution - works in double quotes and unquoted
213
- if (char === '$' && nextChar === '(') {
214
- return true;
215
- }
216
- // <(...) process substitution - works unquoted only (not in double quotes)
217
- if (char === '<' && nextChar === '(' && !inDoubleQuotes && !inBackticks) {
218
- return true;
219
- }
220
- // >(...) process substitution - works unquoted only (not in double quotes)
221
- if (char === '>' && nextChar === '(' && !inDoubleQuotes && !inBackticks) {
222
- return true;
223
- }
224
- // Backtick command substitution - check for opening backtick
225
- // (We track the state above, so this catches the start of backtick substitution)
226
- if (char === '`' && !inBackticks) {
227
- return true;
228
- }
229
- }
230
- i++;
231
- }
232
- return false;
233
- }
234
371
  /**
235
372
  * Checks a shell command against security policies and allowlists.
236
373
  *
@@ -256,17 +393,19 @@ export function detectCommandSubstitution(command) {
256
393
  * @returns An object detailing which commands are not allowed.
257
394
  */
258
395
  export function checkCommandPermissions(command, config, sessionAllowlist) {
259
- // Disallow command substitution for security.
260
- if (detectCommandSubstitution(command)) {
396
+ const parseResult = parseCommandDetails(command);
397
+ if (!parseResult || parseResult.hasError) {
261
398
  return {
262
399
  allAllowed: false,
263
400
  disallowedCommands: [command],
264
- blockReason: 'Command substitution using $(), `` ` ``, <(), or >() is not allowed for security reasons',
401
+ blockReason: 'Command rejected because it could not be parsed safely',
265
402
  isHardDenial: true,
266
403
  };
267
404
  }
268
405
  const normalize = (cmd) => cmd.trim().replace(/\s+/g, ' ');
269
- const commandsToValidate = splitCommands(command).map(normalize);
406
+ const commandsToValidate = parseResult.details
407
+ .map((detail) => normalize(detail.text))
408
+ .filter(Boolean);
270
409
  const invocation = {
271
410
  params: { command: '' },
272
411
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shell-utils.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-utils.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,KAAK,EACL,SAAS,GAEV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAqBnE,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3D,IAAI,YAAY,GAAoB,IAAI,CAAC;AACzC,IAAI,wBAAwB,GAAyB,IAAI,CAAC;AAE1D,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,CAC9C,kCAAkC,CACnC,CAAC;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CACxC,wCAAwC,CACzC,CAAC;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC;YAChB,UAAU;gBACR,OAAO,kBAAkB,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;QACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,wBAAwB,GAAG,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACvD,iDAAiD;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,wBAAwB,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;AACH,CAAC;AAYD,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAE7D,uGAAuG;AACvG,kHAAkH;AAClH,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAC1C;;sBAEoB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B3C,EACC,SAAS,CACV,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAErB,SAAS,YAAY;IACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU;IACrC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,qBAAqB,CAAC;QAC3B,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAU,EACV,MAAc;IAEd,MAAM,KAAK,GAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;aAChE,CAAC,CAAC;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAe,EACf,UAAkB;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CACtB,UAAU,EACV;YACE,SAAS;YACT,YAAY;YACZ,iBAAiB;YACjB,iBAAiB;YACjB,wBAAwB;SACzB,EACD;YACE,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,CAAC,sBAAsB,CAAC,EAAE,OAAO;aAClC;YACD,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,GAGC,IAAI,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;YACrB,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GACR,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ;gBACpC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3B,CAAC,CAAC,OAAO,CAAC;YAEd,OAAO;gBACL,IAAI;gBACJ,IAAI;aACL,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,MAAM,EAAiC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAEtE,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;SAC/B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAE9C,IAAI,aAAa,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACzC,OAAO,6BAA6B,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,IACE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACrC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC/B,CAAC;gBACD,OAAO;oBACL,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACtC,KAAK,EAAE,YAAY;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,OAAO;YACL,UAAU,EAAE,gBAAgB;YAC5B,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;YACtC,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,KAAgB;IAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY;YACf,4FAA4F;YAC5F,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACxC,KAAK,KAAK;YACR,6FAA6F;YAC7F,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACxC,KAAK,MAAM,CAAC;QACZ;YACE,0CAA0C;YAC1C,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,OAAO,GACX,+IAA+I,CAAC;IAClJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxD,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,MAAc,EACd,gBAA8B;IAO9B,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,CAAC,OAAO,CAAC;YAC7B,WAAW,EAAE,wDAAwD;YACrE,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO;SAC3C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACvC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,UAAU,GAAwD;QACtE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;KAC+B,CAAC;IAEzD,wCAAwC;IACxC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACpD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5B,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,kBAAkB,EAAE,kBAAkB;YACtC,WAAW,EAAE,kDAAkD;YAC/D,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;QACnC,IACE,uBAAuB,CAAC,mBAAmB,EAAE,UAAU,EAAE,YAAY,CAAC,EACtE,CAAC;YACD,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,kBAAkB,EAAE,CAAC,GAAG,CAAC;gBACzB,WAAW,EAAE,YAAY,GAAG,+BAA+B;gBAC3D,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzB,CAAC;IAEF,uEAAuE;IACvE,wDAAwD;IACxD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,kBAAkB,GAAa,EAAE,CAAC;IAExC,IAAI,gBAAgB,EAAE,CAAC;QACrB,wDAAwD;QACxD,kEAAkE;QAClE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CACxC,CAAC,GAAG,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAClD,CACF,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;YACnC,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,mBAAmB,EACnB,UAAU,EACV,CAAC,GAAG,0BAA0B,CAAC,CAChC,CAAC;YACF,IAAI,gBAAgB;gBAAE,SAAS;YAE/B,MAAM,iBAAiB,GAAG,uBAAuB,CAC/C,mBAAmB,EACnB,UAAU,EACV,SAAS,CACV,CAAC;YACF,IAAI,iBAAiB;gBAAE,SAAS;YAEhC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,kBAAkB;gBAClB,WAAW,EAAE,2EAA2E,kBAAkB;qBACvG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;gBACf,YAAY,EAAE,KAAK,EAAE,mDAAmD;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,MAAM,0BAA0B,GAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAC7D,CAAC,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,0BAA0B,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBACrC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;gBACnC,MAAM,iBAAiB,GAAG,uBAAuB,CAC/C,mBAAmB,EACnB,UAAU,EACV,SAAS,CACV,CAAC;gBACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,OAAO;oBACL,UAAU,EAAE,KAAK;oBACjB,kBAAkB;oBAClB,WAAW,EAAE,qEAAqE,kBAAkB;yBACjG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;yBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;oBACf,YAAY,EAAE,KAAK,EAAE,yBAAyB;iBAC/C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,uEAAuE;QACvE,qCAAqC;IACvC,CAAC;IAED,mEAAmE;IACnE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,EACf,IAAc,EACd,OAAkC,EACW,EAAE,CAC/C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,MAAc;IAEd,2EAA2E;IAC3E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjD,CAAC"}