@neurcode-ai/cli 0.9.20 → 0.9.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +328 -188
- package/dist/commands/ask.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AA+CA,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AA+CA,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAq0BD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqX1F"}
|
package/dist/commands/ask.js
CHANGED
|
@@ -39,14 +39,20 @@ const STOP_WORDS = new Set([
|
|
|
39
39
|
'from', 'your', 'about', 'there', 'their', 'them', 'have', 'does', 'is', 'are', 'was',
|
|
40
40
|
'were', 'any', 'all', 'read', 'tell', 'me', 'its', 'it', 'instead', 'than', 'then',
|
|
41
41
|
'workflow', 'codebase', 'repo', 'repository', 'used', 'use', 'mentioned', 'mention', 'whether',
|
|
42
|
+
'list', 'show', 'like', 'can', 'type', 'types', 'using', 'etc', 'cmd', 'cmds', 'command', 'commands',
|
|
43
|
+
'system', 'platform', 'latest', 'package', 'packages',
|
|
42
44
|
]);
|
|
43
45
|
const LOW_SIGNAL_TERMS = new Set([
|
|
44
46
|
'used', 'use', 'using', 'mentioned', 'mention', 'where', 'tell', 'read', 'check', 'find', 'search',
|
|
45
|
-
'workflow', 'repo', 'repository', 'codebase', 'anywhere',
|
|
47
|
+
'workflow', 'repo', 'repository', 'codebase', 'anywhere', 'can', 'type', 'types', 'list', 'show', 'like',
|
|
48
|
+
'neurcode', 'cli',
|
|
46
49
|
]);
|
|
47
50
|
function scanFiles(dir, maxFiles = MAX_SCAN_FILES) {
|
|
48
51
|
const files = [];
|
|
49
|
-
const ignoreDirs = new Set([
|
|
52
|
+
const ignoreDirs = new Set([
|
|
53
|
+
'node_modules', '.git', '.next', 'dist', 'build', '.turbo', '.cache', 'coverage',
|
|
54
|
+
'.neurcode', '.vscode', '.pnpm-store', '.npm', '.yarn',
|
|
55
|
+
]);
|
|
50
56
|
const ignoreExts = new Set(['map', 'log', 'lock', 'png', 'jpg', 'jpeg', 'gif', 'ico', 'svg', 'woff', 'woff2', 'ttf', 'eot', 'pdf']);
|
|
51
57
|
const walk = (current) => {
|
|
52
58
|
if (files.length >= maxFiles)
|
|
@@ -95,7 +101,9 @@ function scanFiles(dir, maxFiles = MAX_SCAN_FILES) {
|
|
|
95
101
|
}
|
|
96
102
|
function tokenizeQuestion(question) {
|
|
97
103
|
return (0, plan_cache_1.normalizeIntent)(question)
|
|
104
|
+
.replace(/[^a-z0-9_\-\s]/g, ' ')
|
|
98
105
|
.split(/\s+/)
|
|
106
|
+
.map((token) => token.trim())
|
|
99
107
|
.filter((token) => token.length >= 3 && !STOP_WORDS.has(token));
|
|
100
108
|
}
|
|
101
109
|
function escapeRegExp(input) {
|
|
@@ -105,6 +113,7 @@ function normalizeTerm(raw) {
|
|
|
105
113
|
return raw
|
|
106
114
|
.toLowerCase()
|
|
107
115
|
.replace(/['"`]/g, '')
|
|
116
|
+
.replace(/[^a-z0-9_\-\s]/g, ' ')
|
|
108
117
|
.replace(/\s+/g, ' ')
|
|
109
118
|
.trim();
|
|
110
119
|
}
|
|
@@ -178,6 +187,34 @@ function buildTermMatchers(term, weight) {
|
|
|
178
187
|
push(normalized, `\\b${escapeRegExp(tokens.join('-'))}\\b`);
|
|
179
188
|
return out;
|
|
180
189
|
}
|
|
190
|
+
function expandSearchTerms(terms) {
|
|
191
|
+
const expanded = new Set();
|
|
192
|
+
for (const rawTerm of terms) {
|
|
193
|
+
const term = normalizeTerm(rawTerm);
|
|
194
|
+
if (!term)
|
|
195
|
+
continue;
|
|
196
|
+
expanded.add(term);
|
|
197
|
+
if (term.includes(' ')) {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if (term.endsWith('ies') && term.length > 4) {
|
|
201
|
+
expanded.add(`${term.slice(0, -3)}y`);
|
|
202
|
+
}
|
|
203
|
+
if (term.endsWith('s') && term.length > 3) {
|
|
204
|
+
expanded.add(term.slice(0, -1));
|
|
205
|
+
}
|
|
206
|
+
else if (term.length > 3) {
|
|
207
|
+
expanded.add(`${term}s`);
|
|
208
|
+
}
|
|
209
|
+
if (term.endsWith('ing') && term.length > 5) {
|
|
210
|
+
expanded.add(term.slice(0, -3));
|
|
211
|
+
}
|
|
212
|
+
if (term.endsWith('ed') && term.length > 4) {
|
|
213
|
+
expanded.add(term.slice(0, -2));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return [...expanded];
|
|
217
|
+
}
|
|
181
218
|
function buildMatchers(question) {
|
|
182
219
|
const comparisonTerms = extractComparisonTerms(question);
|
|
183
220
|
if (comparisonTerms.length >= 2) {
|
|
@@ -194,8 +231,9 @@ function buildMatchers(question) {
|
|
|
194
231
|
const quoted = extractQuotedTerms(question);
|
|
195
232
|
const keywords = tokenizeQuestion(question).slice(0, 8);
|
|
196
233
|
const quotedSet = new Set(quoted.map((term) => normalizeTerm(term)));
|
|
197
|
-
const
|
|
198
|
-
|
|
234
|
+
const baseTerms = [...new Set([...quoted, ...keywords].map(normalizeTerm).filter(Boolean))];
|
|
235
|
+
const filteredTerms = baseTerms.filter((term) => quotedSet.has(term) || !LOW_SIGNAL_TERMS.has(term));
|
|
236
|
+
const terms = expandSearchTerms(filteredTerms.length > 0 ? filteredTerms : baseTerms).filter(Boolean);
|
|
199
237
|
const matchers = terms.flatMap((term) => buildTermMatchers(term, quoted.includes(term) ? 0.9 : 0.55));
|
|
200
238
|
return {
|
|
201
239
|
mode: 'search',
|
|
@@ -216,8 +254,25 @@ function derivePathHints(question) {
|
|
|
216
254
|
}
|
|
217
255
|
if (/\bdashboard|landing|docs|frontend|ui|pricing\b/.test(normalized)) {
|
|
218
256
|
hints.push('web/dashboard/');
|
|
257
|
+
hints.push('docs/');
|
|
258
|
+
hints.push('README.md');
|
|
259
|
+
}
|
|
260
|
+
if (/\bfeature|capabilit|offer|platform\b/.test(normalized)) {
|
|
261
|
+
hints.push('docs/');
|
|
262
|
+
hints.push('README.md');
|
|
263
|
+
}
|
|
264
|
+
if (/\binstall|setup|upgrade|update\b/.test(normalized)) {
|
|
265
|
+
hints.push('README.md');
|
|
266
|
+
hints.push('docs/');
|
|
267
|
+
hints.push('packages/cli/');
|
|
268
|
+
}
|
|
269
|
+
if (/\btenant|tenancy|single|multi|organization|org\b/.test(normalized)) {
|
|
270
|
+
hints.push('services/api/src/lib/');
|
|
271
|
+
hints.push('services/api/src/routes/');
|
|
272
|
+
hints.push('packages/cli/src/');
|
|
219
273
|
}
|
|
220
274
|
if (/(github action|\bci\b)/.test(normalized)) {
|
|
275
|
+
hints.push('.github/workflows/');
|
|
221
276
|
hints.push('packages/action/');
|
|
222
277
|
hints.push('actions/');
|
|
223
278
|
}
|
|
@@ -230,149 +285,211 @@ function normalizeSnippet(line) {
|
|
|
230
285
|
.trim()
|
|
231
286
|
.slice(0, 220);
|
|
232
287
|
}
|
|
233
|
-
function
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
288
|
+
function addAnchorCandidates(fileTree, candidateSet, pathPriority, normalizedQuestion) {
|
|
289
|
+
const asSet = new Set(fileTree);
|
|
290
|
+
const pinned = [
|
|
291
|
+
'README.md',
|
|
292
|
+
'packages/cli/package.json',
|
|
293
|
+
'packages/cli/src/index.ts',
|
|
294
|
+
'packages/cli/src/api-client.ts',
|
|
295
|
+
'services/api/src/lib/org-context.ts',
|
|
296
|
+
'services/api/src/lib/user-org.ts',
|
|
297
|
+
'docs/cli-commands.md',
|
|
298
|
+
'docs/enterprise-setup.md',
|
|
299
|
+
];
|
|
300
|
+
for (const path of pinned) {
|
|
301
|
+
if (!asSet.has(path))
|
|
302
|
+
continue;
|
|
303
|
+
candidateSet.add(path);
|
|
304
|
+
pathPriority.set(path, Math.max(pathPriority.get(path) || 0, 0.22));
|
|
305
|
+
}
|
|
306
|
+
const docsLikelyUseful = /\b(feature|capabilit|offer|platform|install|setup|tenant|tenancy|architecture)\b/.test(normalizedQuestion);
|
|
307
|
+
if (!docsLikelyUseful)
|
|
308
|
+
return;
|
|
309
|
+
let addedDocs = 0;
|
|
310
|
+
for (const path of fileTree) {
|
|
311
|
+
if (addedDocs >= 24)
|
|
312
|
+
break;
|
|
313
|
+
if (path === 'README.md' || (path.startsWith('docs/') && path.endsWith('.md'))) {
|
|
314
|
+
candidateSet.add(path);
|
|
315
|
+
pathPriority.set(path, Math.max(pathPriority.get(path) || 0, 0.18));
|
|
316
|
+
addedDocs++;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
248
319
|
}
|
|
249
|
-
function
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
if (!(0, fs_1.existsSync)(fullPath))
|
|
320
|
+
function readCliPackageName(cwd) {
|
|
321
|
+
const pkgPath = (0, path_1.join)(cwd, 'packages/cli/package.json');
|
|
322
|
+
if (!(0, fs_1.existsSync)(pkgPath))
|
|
253
323
|
return null;
|
|
254
|
-
let content = '';
|
|
255
324
|
try {
|
|
256
|
-
|
|
325
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf-8'));
|
|
326
|
+
if (typeof parsed.name !== 'string' || !parsed.name.trim())
|
|
327
|
+
return null;
|
|
328
|
+
return parsed.name.trim();
|
|
257
329
|
}
|
|
258
330
|
catch {
|
|
259
331
|
return null;
|
|
260
332
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
333
|
+
}
|
|
334
|
+
function extractCommandsFromCliIndex(cwd) {
|
|
335
|
+
const indexPath = (0, path_1.join)(cwd, 'packages/cli/src/index.ts');
|
|
336
|
+
if (!(0, fs_1.existsSync)(indexPath))
|
|
337
|
+
return [];
|
|
338
|
+
let content = '';
|
|
339
|
+
try {
|
|
340
|
+
content = (0, fs_1.readFileSync)(indexPath, 'utf-8');
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
return [];
|
|
344
|
+
}
|
|
345
|
+
const commandSet = new Set();
|
|
267
346
|
const topByVar = new Map();
|
|
268
|
-
const
|
|
269
|
-
const seenSub = new Set();
|
|
270
|
-
const topRegex = /(?:const\s+([A-Za-z_$][\w$]*)\s*=\s*)?program\s*\r?\n\s*\.command\('([^']+)'\)/g;
|
|
271
|
-
for (const match of content.matchAll(topRegex)) {
|
|
347
|
+
for (const match of content.matchAll(/(?:const\s+([A-Za-z_$][\w$]*)\s*=\s*)?program\s*\r?\n\s*\.command\('([^']+)'\)/g)) {
|
|
272
348
|
const varName = match[1];
|
|
273
|
-
const
|
|
274
|
-
if (!
|
|
275
|
-
continue;
|
|
276
|
-
const commandName = rawCommand.split(/\s+/)[0];
|
|
277
|
-
if (!commandName)
|
|
349
|
+
const top = (match[2] || '').trim().split(/\s+/)[0];
|
|
350
|
+
if (!top)
|
|
278
351
|
continue;
|
|
352
|
+
commandSet.add(`neurcode ${top}`);
|
|
279
353
|
if (varName) {
|
|
280
|
-
topByVar.set(varName,
|
|
281
|
-
}
|
|
282
|
-
if (!seenTop.has(commandName)) {
|
|
283
|
-
seenTop.add(commandName);
|
|
284
|
-
topLevel.push(commandName);
|
|
285
|
-
const baseOffset = match.index ?? 0;
|
|
286
|
-
const commandInMatchOffset = match[0].indexOf(".command('");
|
|
287
|
-
const offset = commandInMatchOffset >= 0 ? baseOffset + commandInMatchOffset : baseOffset;
|
|
288
|
-
const line = lineNumberFromOffset(content, offset);
|
|
289
|
-
citations.push({
|
|
290
|
-
path: indexPath,
|
|
291
|
-
line,
|
|
292
|
-
snippet: normalizeSnippet(lines[line - 1] || `.command('${rawCommand}')`),
|
|
293
|
-
term: 'command',
|
|
294
|
-
});
|
|
354
|
+
topByVar.set(varName, top);
|
|
295
355
|
}
|
|
296
356
|
}
|
|
297
|
-
const
|
|
298
|
-
for (const match of content.matchAll(subRegex)) {
|
|
357
|
+
for (const match of content.matchAll(/([A-Za-z_$][\w$]*)\s*\r?\n\s*\.command\('([^']+)'\)/g)) {
|
|
299
358
|
const parentVar = match[1];
|
|
300
359
|
const parent = topByVar.get(parentVar);
|
|
301
360
|
if (!parent)
|
|
302
361
|
continue;
|
|
303
|
-
const
|
|
304
|
-
if (!
|
|
362
|
+
const sub = (match[2] || '').trim().split(/\s+/)[0];
|
|
363
|
+
if (!sub)
|
|
305
364
|
continue;
|
|
306
|
-
|
|
307
|
-
|
|
365
|
+
commandSet.add(`neurcode ${parent} ${sub}`);
|
|
366
|
+
}
|
|
367
|
+
return [...commandSet].slice(0, 40);
|
|
368
|
+
}
|
|
369
|
+
function extractFeatureBulletsFromReadme(cwd, limit) {
|
|
370
|
+
const readmePath = (0, path_1.join)(cwd, 'README.md');
|
|
371
|
+
if (!(0, fs_1.existsSync)(readmePath))
|
|
372
|
+
return [];
|
|
373
|
+
let content = '';
|
|
374
|
+
try {
|
|
375
|
+
content = (0, fs_1.readFileSync)(readmePath, 'utf-8');
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
return [];
|
|
379
|
+
}
|
|
380
|
+
const lines = content.split(/\r?\n/);
|
|
381
|
+
let start = lines.findIndex((line) => /^##\s+.*features/i.test(line));
|
|
382
|
+
if (start < 0)
|
|
383
|
+
start = lines.findIndex((line) => /^###\s+.*features/i.test(line));
|
|
384
|
+
if (start < 0)
|
|
385
|
+
return [];
|
|
386
|
+
const out = [];
|
|
387
|
+
const seen = new Set();
|
|
388
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
389
|
+
const line = lines[i];
|
|
390
|
+
if (/^##\s+/.test(line))
|
|
391
|
+
break;
|
|
392
|
+
const rich = line.match(/^- \*\*(.+?)\*\*\s*-\s*(.+)$/);
|
|
393
|
+
if (rich?.[1]) {
|
|
394
|
+
const text = `${formatInsightSnippet(rich[1])} - ${formatInsightSnippet(rich[2])}`.trim();
|
|
395
|
+
const key = text.toLowerCase();
|
|
396
|
+
if (key && !seen.has(key)) {
|
|
397
|
+
seen.add(key);
|
|
398
|
+
out.push(text);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
const simple = line.match(/^- (.+)$/);
|
|
403
|
+
if (!simple?.[1])
|
|
404
|
+
continue;
|
|
405
|
+
const text = formatInsightSnippet(simple[1]);
|
|
406
|
+
const key = text.toLowerCase();
|
|
407
|
+
if (text && !seen.has(key)) {
|
|
408
|
+
seen.add(key);
|
|
409
|
+
out.push(text);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (out.length >= limit)
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
return out;
|
|
416
|
+
}
|
|
417
|
+
function extractNeurcodeCommandsFromCitations(citations) {
|
|
418
|
+
const commandSet = new Set();
|
|
419
|
+
for (const citation of citations) {
|
|
420
|
+
const snippet = citation.snippet || '';
|
|
421
|
+
for (const match of snippet.matchAll(/\.command\('([^']+)'\)/g)) {
|
|
422
|
+
const command = (match[1] || '').trim().split(/\s+/)[0];
|
|
423
|
+
if (!command)
|
|
424
|
+
continue;
|
|
425
|
+
commandSet.add(`neurcode ${command}`);
|
|
426
|
+
}
|
|
427
|
+
for (const match of snippet.matchAll(/`neurcode\s+([^`]+)`/g)) {
|
|
428
|
+
const command = (match[1] || '').trim();
|
|
429
|
+
if (!command)
|
|
430
|
+
continue;
|
|
431
|
+
commandSet.add(`neurcode ${command}`);
|
|
432
|
+
}
|
|
433
|
+
for (const plainMatch of snippet.matchAll(/\bneurcode\s+([a-z][a-z0-9-]*(?:\s+[a-z][a-z0-9-]*)?)\b/g)) {
|
|
434
|
+
if (!plainMatch?.[1])
|
|
435
|
+
continue;
|
|
436
|
+
commandSet.add(`neurcode ${plainMatch[1].trim()}`);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
return [...commandSet].slice(0, 20);
|
|
440
|
+
}
|
|
441
|
+
function extractInstallCommandsFromCitations(citations) {
|
|
442
|
+
const installSet = new Set();
|
|
443
|
+
for (const citation of citations) {
|
|
444
|
+
const snippet = citation.snippet || '';
|
|
445
|
+
const matches = snippet.match(/\b(?:npm|pnpm|yarn)\s+(?:install|add)\s+-g\s+[@a-z0-9_.\-/]+(?:@latest)?\b/gi) || [];
|
|
446
|
+
for (const match of matches) {
|
|
447
|
+
installSet.add(match.trim());
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return [...installSet].slice(0, 6);
|
|
451
|
+
}
|
|
452
|
+
function formatInsightSnippet(snippet) {
|
|
453
|
+
return snippet
|
|
454
|
+
.replace(/^[-*]\s+/, '')
|
|
455
|
+
.replace(/^\/\/\s?/, '')
|
|
456
|
+
.replace(/^\/\*\s?/, '')
|
|
457
|
+
.replace(/\*\/$/, '')
|
|
458
|
+
.replace(/^\*\s+/, '')
|
|
459
|
+
.replace(/\s+/g, ' ')
|
|
460
|
+
.trim()
|
|
461
|
+
.slice(0, 180);
|
|
462
|
+
}
|
|
463
|
+
function extractInsightLines(citations, limit) {
|
|
464
|
+
const out = [];
|
|
465
|
+
const seen = new Set();
|
|
466
|
+
for (const citation of citations) {
|
|
467
|
+
const line = formatInsightSnippet(citation.snippet || '');
|
|
468
|
+
if (!line || line.length < 10)
|
|
308
469
|
continue;
|
|
309
|
-
|
|
310
|
-
if (seenSub.has(combined))
|
|
470
|
+
if (/^#+\s/.test(line))
|
|
311
471
|
continue;
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
472
|
+
if (/^name:\s+/i.test(line))
|
|
473
|
+
continue;
|
|
474
|
+
const tooNoisy = /[{}[\];=><]/.test(line) && !/\b(multi-tenant|single-tenant|organization|install|command|feature)\b/i.test(line);
|
|
475
|
+
if (tooNoisy)
|
|
476
|
+
continue;
|
|
477
|
+
const key = line.toLowerCase();
|
|
478
|
+
if (seen.has(key))
|
|
479
|
+
continue;
|
|
480
|
+
seen.add(key);
|
|
481
|
+
out.push(line);
|
|
482
|
+
if (out.length >= limit)
|
|
483
|
+
break;
|
|
324
484
|
}
|
|
325
|
-
|
|
326
|
-
return null;
|
|
327
|
-
return {
|
|
328
|
-
topLevelCommands: topLevel,
|
|
329
|
-
subcommands,
|
|
330
|
-
citations,
|
|
331
|
-
};
|
|
332
|
-
}
|
|
333
|
-
function buildCliCommandAnswer(question, normalizedQuestion, catalog, brainCandidates) {
|
|
334
|
-
const commandBullets = catalog.topLevelCommands.map((command) => ` • \`neurcode ${command}\``);
|
|
335
|
-
const nestedBullets = catalog.subcommands.slice(0, 8).map((command) => ` • \`neurcode ${command}\``);
|
|
336
|
-
const parts = ['Yes. These are the main CLI commands available in this repo:', ...commandBullets];
|
|
337
|
-
if (nestedBullets.length > 0) {
|
|
338
|
-
parts.push('\nCommon subcommands:', ...nestedBullets);
|
|
339
|
-
}
|
|
340
|
-
parts.push('\nTip: run `neurcode <command> --help` for options and examples.');
|
|
341
|
-
return {
|
|
342
|
-
question,
|
|
343
|
-
questionNormalized: normalizedQuestion,
|
|
344
|
-
mode: 'search',
|
|
345
|
-
answer: parts.join('\n'),
|
|
346
|
-
findings: [
|
|
347
|
-
`Top-level commands found: ${catalog.topLevelCommands.length}`,
|
|
348
|
-
catalog.subcommands.length > 0 ? `Nested subcommands found: ${catalog.subcommands.length}` : 'Nested subcommands found: 0',
|
|
349
|
-
'Source of truth: packages/cli/src/index.ts',
|
|
350
|
-
],
|
|
351
|
-
confidence: 'high',
|
|
352
|
-
truth: {
|
|
353
|
-
status: 'grounded',
|
|
354
|
-
score: 0.99,
|
|
355
|
-
reasons: [],
|
|
356
|
-
sourceCitations: catalog.citations.length,
|
|
357
|
-
sourceFiles: 1,
|
|
358
|
-
minCitationsRequired: 1,
|
|
359
|
-
minFilesRequired: 1,
|
|
360
|
-
},
|
|
361
|
-
citations: catalog.citations,
|
|
362
|
-
generatedAt: new Date().toISOString(),
|
|
363
|
-
stats: {
|
|
364
|
-
scannedFiles: 1,
|
|
365
|
-
matchedFiles: 1,
|
|
366
|
-
matchedLines: catalog.citations.length,
|
|
367
|
-
brainCandidates,
|
|
368
|
-
},
|
|
369
|
-
};
|
|
485
|
+
return out;
|
|
370
486
|
}
|
|
371
487
|
function isPrimarySourcePath(filePath) {
|
|
372
488
|
const normalized = filePath.trim().replace(/\\/g, '/').toLowerCase();
|
|
373
489
|
if (!normalized)
|
|
374
490
|
return false;
|
|
375
491
|
if (normalized.startsWith('.neurcode/') ||
|
|
492
|
+
normalized.startsWith('.github/') ||
|
|
376
493
|
normalized.startsWith('.git/') ||
|
|
377
494
|
normalized.startsWith('node_modules/') ||
|
|
378
495
|
normalized.startsWith('dist/') ||
|
|
@@ -412,12 +529,13 @@ function evaluateTruthAssessment(mode, normalizedQuestion, terms, sourceCitation
|
|
|
412
529
|
const broadQuestion = isBroadQuestion(normalizedQuestion);
|
|
413
530
|
const minCitationsRequired = mode === 'comparison' ? 2 : 2;
|
|
414
531
|
let minFilesRequired = mode === 'comparison' ? 2 : 1;
|
|
532
|
+
const sourceCitationCount = sourceCitations.length;
|
|
533
|
+
const sourceFileCount = sourcePerFileCounts.size;
|
|
534
|
+
const hasStrongSingleFileEvidence = sourceFileCount === 1 && sourceCitationCount >= 6;
|
|
415
535
|
if (broadQuestion) {
|
|
416
|
-
minFilesRequired = Math.max(minFilesRequired, 2);
|
|
536
|
+
minFilesRequired = hasStrongSingleFileEvidence ? minFilesRequired : Math.max(minFilesRequired, 2);
|
|
417
537
|
}
|
|
418
538
|
const reasons = [];
|
|
419
|
-
const sourceCitationCount = sourceCitations.length;
|
|
420
|
-
const sourceFileCount = sourcePerFileCounts.size;
|
|
421
539
|
if (sourceCitationCount === 0) {
|
|
422
540
|
reasons.push('No direct source-file evidence was found for the query terms.');
|
|
423
541
|
}
|
|
@@ -447,7 +565,7 @@ function evaluateTruthAssessment(mode, normalizedQuestion, terms, sourceCitation
|
|
|
447
565
|
const highest = Math.max(...sourcePerFileCounts.values());
|
|
448
566
|
dominantShare = highest / sourceCitationCount;
|
|
449
567
|
}
|
|
450
|
-
if (broadQuestion && dominantShare > 0.85 && sourceFileCount < 3) {
|
|
568
|
+
if (broadQuestion && dominantShare > 0.85 && sourceFileCount < 3 && !hasStrongSingleFileEvidence) {
|
|
451
569
|
reasons.push('Evidence is highly concentrated in one file; broader coverage is required for this query.');
|
|
452
570
|
}
|
|
453
571
|
const citationScore = Math.min(1, sourceCitationCount / Math.max(minCitationsRequired, 4));
|
|
@@ -483,17 +601,24 @@ function evaluateTruthAssessment(mode, normalizedQuestion, terms, sourceCitation
|
|
|
483
601
|
minFilesRequired,
|
|
484
602
|
};
|
|
485
603
|
}
|
|
486
|
-
function buildAnswer(mode, question, terms, citations, stats, termCounts, perFileCounts, truth) {
|
|
604
|
+
function buildAnswer(mode, question, terms, citations, stats, termCounts, perFileCounts, truth, context = {}) {
|
|
487
605
|
const confidence = calibrateConfidence(truth);
|
|
488
606
|
const normalizedQuestion = (0, plan_cache_1.normalizeIntent)(question);
|
|
489
607
|
const findings = [];
|
|
490
608
|
let answer = '';
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
609
|
+
const asksCommands = /\b(cli|command|cmd|subcommand|terminal)\b/.test(normalizedQuestion);
|
|
610
|
+
const asksInstall = /\b(install|upgrade|update|latest)\b/.test(normalizedQuestion);
|
|
611
|
+
const asksFeatures = /\b(feature|features|capability|capabilities|offers?)\b/.test(normalizedQuestion);
|
|
612
|
+
const asksTenancy = /\b(tenant|tenancy|single|multi|organization)\b/.test(normalizedQuestion);
|
|
613
|
+
const commandMatches = [
|
|
614
|
+
...extractNeurcodeCommandsFromCitations(citations),
|
|
615
|
+
...(context.knownCommands || []),
|
|
616
|
+
].filter((value, index, arr) => arr.indexOf(value) === index);
|
|
617
|
+
const installMatches = extractInstallCommandsFromCitations(citations);
|
|
618
|
+
const insightLines = extractInsightLines(citations, 5);
|
|
619
|
+
const multiSignals = citations.filter((citation) => /\bmulti[- ]tenant|x-org-id|organization[_ -]?id|org-scoped\b/i.test(citation.snippet)).length;
|
|
620
|
+
const singleSignals = citations.filter((citation) => /\bsingle[- ]tenant|single-user\b/i.test(citation.snippet)).length;
|
|
621
|
+
if (mode === 'comparison' && terms.length >= 2) {
|
|
497
622
|
const left = terms[0];
|
|
498
623
|
const right = terms[1];
|
|
499
624
|
const leftCount = termCounts.get(left) || 0;
|
|
@@ -513,14 +638,61 @@ function buildAnswer(mode, question, terms, citations, stats, termCounts, perFil
|
|
|
513
638
|
findings.push(`Compared terms: "${left}" vs "${right}"`);
|
|
514
639
|
findings.push(`Matches by term: ${left}=${leftCount}, ${right}=${rightCount}`);
|
|
515
640
|
}
|
|
516
|
-
else {
|
|
517
|
-
|
|
518
|
-
|
|
641
|
+
else if (citations.length === 0) {
|
|
642
|
+
answer = 'I could not find direct grounded evidence for that in the files I scanned.';
|
|
643
|
+
findings.push('Try adding a module/file hint, for example: "in packages/cli" or "in services/api auth middleware".');
|
|
644
|
+
}
|
|
645
|
+
else if (asksInstall) {
|
|
646
|
+
const manifestInstall = context.cliPackageName ? `npm install -g ${context.cliPackageName}@latest` : null;
|
|
647
|
+
const primaryInstall = manifestInstall || installMatches[0];
|
|
648
|
+
if (!primaryInstall) {
|
|
649
|
+
answer = 'I found CLI references, but not an explicit install command in the matched evidence.';
|
|
650
|
+
}
|
|
651
|
+
else {
|
|
652
|
+
answer = [
|
|
653
|
+
'Here is the install command I found for the CLI:',
|
|
654
|
+
`\`${primaryInstall}\``,
|
|
655
|
+
installMatches.length > 1 ? `Also seen: ${installMatches.slice(1, 3).map((cmd) => `\`${cmd}\``).join(', ')}` : '',
|
|
656
|
+
].filter(Boolean).join('\n');
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
else if (asksFeatures && (context.featureBullets || []).length > 0) {
|
|
660
|
+
const bullets = (context.featureBullets || []).slice(0, 6).map((line) => ` • ${line}`);
|
|
661
|
+
answer = ['Here are the main platform features I could verify from the repo:', ...bullets].join('\n');
|
|
662
|
+
}
|
|
663
|
+
else if (asksCommands && commandMatches.length > 0) {
|
|
664
|
+
const normalizedCommands = commandMatches
|
|
665
|
+
.filter((command) => /^neurcode\s+[a-z]/.test(command))
|
|
666
|
+
.slice(0, 22);
|
|
667
|
+
const commandBullets = normalizedCommands.map((command) => ` • \`${command}\``);
|
|
668
|
+
answer = ['Here are the CLI commands I could verify from the repo:', ...commandBullets].join('\n');
|
|
669
|
+
}
|
|
670
|
+
else if (asksTenancy && (multiSignals > 0 || singleSignals > 0)) {
|
|
671
|
+
if (multiSignals >= singleSignals + 2) {
|
|
672
|
+
answer = 'This codebase is multi-tenant, with organization-scoped flows (for example org IDs / `x-org-id` context).';
|
|
673
|
+
}
|
|
674
|
+
else if (singleSignals >= multiSignals + 2) {
|
|
675
|
+
answer = 'This codebase currently looks single-tenant from the scanned evidence.';
|
|
519
676
|
}
|
|
520
677
|
else {
|
|
521
|
-
answer = '
|
|
678
|
+
answer = 'I see mixed tenancy signals, but it leans multi-tenant in current runtime paths.';
|
|
522
679
|
}
|
|
523
680
|
}
|
|
681
|
+
else if (insightLines.length > 0) {
|
|
682
|
+
const bullets = insightLines.map((line) => ` • ${line}`);
|
|
683
|
+
answer = truth.status === 'insufficient'
|
|
684
|
+
? ['I found partial evidence, but not enough for a fully definitive answer yet.', 'What I can confirm so far:', ...bullets].join('\n')
|
|
685
|
+
: ['From this repo, here is what I found:', ...bullets].join('\n');
|
|
686
|
+
}
|
|
687
|
+
else {
|
|
688
|
+
answer = `I found grounded evidence in ${stats.matchedFiles} file(s), but it is mostly low-level implementation detail.`;
|
|
689
|
+
}
|
|
690
|
+
if (asksCommands && commandMatches.length === 0 && citations.length > 0) {
|
|
691
|
+
findings.push('Command-style question detected, but no command declarations were found in the matched lines.');
|
|
692
|
+
}
|
|
693
|
+
if (asksInstall && installMatches.length === 0 && !context.cliPackageName) {
|
|
694
|
+
findings.push('Install question detected, but no package name could be resolved from packages/cli/package.json.');
|
|
695
|
+
}
|
|
524
696
|
const topFiles = [...perFileCounts.entries()]
|
|
525
697
|
.sort((a, b) => b[1] - a[1])
|
|
526
698
|
.slice(0, 3)
|
|
@@ -529,6 +701,10 @@ function buildAnswer(mode, question, terms, citations, stats, termCounts, perFil
|
|
|
529
701
|
findings.push(`Most relevant files: ${topFiles.join(', ')}`);
|
|
530
702
|
}
|
|
531
703
|
findings.push(`Scanned ${stats.scannedFiles} file(s); matched ${stats.matchedFiles} file(s).`);
|
|
704
|
+
if (truth.status === 'insufficient') {
|
|
705
|
+
findings.push(...truth.reasons);
|
|
706
|
+
findings.push('Add scope hints (module/file/path) to improve precision and grounding coverage.');
|
|
707
|
+
}
|
|
532
708
|
return {
|
|
533
709
|
question,
|
|
534
710
|
questionNormalized: normalizedQuestion,
|
|
@@ -721,60 +897,13 @@ async function askCommand(question, options = {}) {
|
|
|
721
897
|
const brainResults = orgId && projectId
|
|
722
898
|
? (0, brain_context_1.searchBrainContextEntries)(cwd, scope, normalizedQuestion, { limit: 48 })
|
|
723
899
|
: { entries: [], totalIndexedFiles: 0 };
|
|
900
|
+
const cliPackageName = readCliPackageName(cwd);
|
|
901
|
+
const knownCliCommands = extractCommandsFromCliIndex(cwd);
|
|
902
|
+
const featureBullets = extractFeatureBulletsFromReadme(cwd, 10);
|
|
724
903
|
if (!options.json && brainResults.entries.length > 0) {
|
|
725
904
|
const top = brainResults.entries.filter((entry) => entry.score > 0).length;
|
|
726
905
|
console.log(chalk.dim(`🧠 Brain retrieval: ${top} relevant file summaries from ${brainResults.totalIndexedFiles} indexed files`));
|
|
727
906
|
}
|
|
728
|
-
if (isCliCommandListQuestion(normalizedQuestion)) {
|
|
729
|
-
const catalog = extractCliCommandCatalog(cwd);
|
|
730
|
-
if (catalog) {
|
|
731
|
-
const answer = buildCliCommandAnswer(question, normalizedQuestion, catalog, brainResults.entries.length);
|
|
732
|
-
emitAskResult(answer, {
|
|
733
|
-
json: options.json,
|
|
734
|
-
maxCitations,
|
|
735
|
-
fromPlan: options.fromPlan,
|
|
736
|
-
verbose: options.verbose,
|
|
737
|
-
});
|
|
738
|
-
if (orgId && projectId) {
|
|
739
|
-
(0, brain_context_1.recordBrainProgressEvent)(cwd, scope, {
|
|
740
|
-
type: 'ask',
|
|
741
|
-
note: `mode=cli_catalog;truth=${answer.truth.status};score=${answer.truth.score.toFixed(2)};commands=${catalog.topLevelCommands.length}`,
|
|
742
|
-
});
|
|
743
|
-
}
|
|
744
|
-
if (shouldUseCache && orgId && projectId) {
|
|
745
|
-
const questionHash = (0, ask_cache_1.computeAskQuestionHash)({
|
|
746
|
-
question: normalizedQuestion,
|
|
747
|
-
contextHash: staticContext.hash,
|
|
748
|
-
});
|
|
749
|
-
const key = (0, ask_cache_1.computeAskCacheKey)({
|
|
750
|
-
schemaVersion: 3,
|
|
751
|
-
orgId,
|
|
752
|
-
projectId,
|
|
753
|
-
repo: repoFingerprint,
|
|
754
|
-
questionHash,
|
|
755
|
-
policyVersionHash,
|
|
756
|
-
neurcodeVersion,
|
|
757
|
-
});
|
|
758
|
-
(0, ask_cache_1.writeCachedAsk)(cwd, {
|
|
759
|
-
key,
|
|
760
|
-
input: {
|
|
761
|
-
schemaVersion: 3,
|
|
762
|
-
orgId,
|
|
763
|
-
projectId,
|
|
764
|
-
repo: repoFingerprint,
|
|
765
|
-
questionHash,
|
|
766
|
-
policyVersionHash,
|
|
767
|
-
neurcodeVersion,
|
|
768
|
-
question: normalizedQuestion,
|
|
769
|
-
contextHash: staticContext.hash,
|
|
770
|
-
},
|
|
771
|
-
output: answer,
|
|
772
|
-
evidencePaths: answer.citations.map((citation) => citation.path),
|
|
773
|
-
});
|
|
774
|
-
}
|
|
775
|
-
return;
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
907
|
const { mode, terms, matchers } = buildMatchers(question);
|
|
779
908
|
const pathHints = derivePathHints(question);
|
|
780
909
|
const mentionsAskCommand = /\bask\b/.test(normalizedQuestion);
|
|
@@ -788,6 +917,7 @@ async function askCommand(question, options = {}) {
|
|
|
788
917
|
candidateSet.add(entry.path);
|
|
789
918
|
pathPriority.set(entry.path, (pathPriority.get(entry.path) || 0) + entry.score);
|
|
790
919
|
}
|
|
920
|
+
addAnchorCandidates(fileTree, candidateSet, pathPriority, normalizedQuestion);
|
|
791
921
|
const tokenHints = tokenizeQuestion(question);
|
|
792
922
|
if (candidateSet.size < 80) {
|
|
793
923
|
for (const filePath of fileTree) {
|
|
@@ -797,6 +927,12 @@ async function askCommand(question, options = {}) {
|
|
|
797
927
|
if (normalizedPath.includes(token))
|
|
798
928
|
score += 0.2;
|
|
799
929
|
}
|
|
930
|
+
if (normalizedPath.startsWith('.github/')) {
|
|
931
|
+
score -= 0.2;
|
|
932
|
+
}
|
|
933
|
+
if (normalizedPath.startsWith('scripts/')) {
|
|
934
|
+
score -= 0.1;
|
|
935
|
+
}
|
|
800
936
|
if (!mentionsAskCommand && (filePath.endsWith('/commands/ask.ts') || filePath.endsWith('/utils/ask-cache.ts'))) {
|
|
801
937
|
score -= 0.45;
|
|
802
938
|
}
|
|
@@ -812,8 +948,8 @@ async function askCommand(question, options = {}) {
|
|
|
812
948
|
}
|
|
813
949
|
}
|
|
814
950
|
}
|
|
815
|
-
if (candidateSet.size <
|
|
816
|
-
for (const filePath of fileTree.slice(0,
|
|
951
|
+
if (candidateSet.size < 40) {
|
|
952
|
+
for (const filePath of fileTree.slice(0, Math.min(fileTree.length, MAX_SCAN_FILES))) {
|
|
817
953
|
candidateSet.add(filePath);
|
|
818
954
|
}
|
|
819
955
|
}
|
|
@@ -920,7 +1056,11 @@ async function askCommand(question, options = {}) {
|
|
|
920
1056
|
brainCandidates: brainResults.entries.length,
|
|
921
1057
|
};
|
|
922
1058
|
const truth = evaluateTruthAssessment(mode, normalizedQuestion, terms, sourceEvidence, sourcePerFileCounts, sourceTermCounts);
|
|
923
|
-
const answer = buildAnswer(mode, question, terms, finalCitations, stats, sourceTermCounts, sourcePerFileCounts, truth
|
|
1059
|
+
const answer = buildAnswer(mode, question, terms, finalCitations, stats, sourceTermCounts, sourcePerFileCounts, truth, {
|
|
1060
|
+
cliPackageName,
|
|
1061
|
+
knownCommands: knownCliCommands,
|
|
1062
|
+
featureBullets,
|
|
1063
|
+
});
|
|
924
1064
|
emitAskResult(answer, {
|
|
925
1065
|
json: options.json,
|
|
926
1066
|
maxCitations,
|
package/dist/commands/ask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":";;AA23BA,gCAqXC;AAhvCD,2BAAqE;AACrE,+BAA4B;AAC5B,sCAAuC;AACvC,wDAAmE;AACnE,0CAAwD;AACxD,gEAGmC;AACnC,oDAM6B;AAC7B,0DAIgC;AAChC,kDAS4B;AAE5B,IAAI,KAAU,CAAC;AACf,IAAI,CAAC;IACH,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAAC,MAAM,CAAC;IACP,KAAK,GAAG;QACN,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC3B,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC5B,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QACzB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC1B,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QACzB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC1B,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;KAC5B,CAAC;AACJ,CAAC;AA+BD,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACtC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAC1D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;IAC5D,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;CAC3E,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACrF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;IACrF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAClF,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS;IAC9F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;IACpG,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;CACtD,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IAClG,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACxG,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,GAAW,EAAE,WAAmB,cAAc;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;QAChF,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO;KACvD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpI,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO;QACrC,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,IAAA,gBAAW,EAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;gBAAE,MAAM;YACpC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS;YACtC,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,EAAO,CAAC;YACZ,IAAI,CAAC;gBACH,EAAE,GAAG,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACpC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;gBAAE,SAAS;YAC3B,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;gBAAE,SAAS;YAEvC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEzC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,IAAA,4BAAe,EAAC,QAAQ,CAAC;SAC7B,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,uBAAuB,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,UAAU,GAAG,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;IAC7H,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GACvB,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC,mBAAmB;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAc;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,WAAmB,EAAE,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,KAAK,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;YACnC,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,EAAE,MAAM,UAAU,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,eAAe,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG;YACf,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC7C,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAC9C,CAAC;QACF,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAClC,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,UAAU,GAAG,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,yCAAyC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,gDAAgD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,kDAAkD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAkB,EAClB,YAAyB,EACzB,YAAiC,EACjC,kBAA0B;IAE1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG;QACb,WAAW;QACX,2BAA2B;QAC3B,2BAA2B;QAC3B,gCAAgC;QAChC,qCAAqC;QACrC,kCAAkC;QAClC,sBAAsB;QACtB,0BAA0B;KAC3B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,gBAAgB,GAAG,kFAAkF,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrI,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,SAAS,IAAI,EAAE;YAAE,MAAM;QAC3B,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACpE,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACvD,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAsB,CAAC;QAC/E,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QACxE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAW;IAC9C,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,iFAAiF,CAAC,EAAE,CAAC;QACxH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,UAAU,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,sDAAsD,CAAC,EAAE,CAAC;QAC7F,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,UAAU,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,+BAA+B,CAAC,GAAW,EAAE,KAAa;IACjE,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACxD,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IACjC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oCAAoC,CAAC,SAAwB;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,UAAU,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,UAAU,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,0DAA0D,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC/B,UAAU,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,mCAAmC,CAAC,SAAwB;IACnE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAC3B,8EAA8E,CAC/E,IAAI,EAAE,CAAC;QACR,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,OAAO;SACX,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAwB,EAAE,KAAa;IAClE,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wEAAwE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClI,IAAI,QAAQ;YAAE,SAAS;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,IACE,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;QACnC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/B,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACzG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,qEAAqE;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,kBAA0B;IACjD,OAAO,CACL,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACvC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACrC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACvC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAA6B,EAC7B,kBAA0B,EAC1B,KAAe,EACf,eAA+B,EAC/B,mBAAwC,EACxC,gBAAqC;IAErC,MAAM,aAAa,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,gBAAgB,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAAC;IACnD,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACjD,MAAM,2BAA2B,GAAG,eAAe,KAAK,CAAC,IAAI,mBAAmB,IAAI,CAAC,CAAC;IACtF,IAAI,aAAa,EAAE,CAAC;QAClB,gBAAgB,GAAG,2BAA2B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,mBAAmB,GAAG,oBAAoB,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,mBAAmB,sCAAsC,oBAAoB,aAAa,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,eAAe,GAAG,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,kBAAkB,eAAe,qBAAqB,gBAAgB,+BAA+B,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,+CAA+C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvG,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,aAAa,GAAG,OAAO,GAAG,mBAAmB,CAAC;IAChD,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/C,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1G,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAC9H,CAAC;IACH,CAAC;IACD,MAAM,oBAAoB,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1F,IAAI,KAAK,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,iBAAiB,GAAG,GAAG,GAAG,oBAAoB,CAAC;IACrG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,CAAC,CAAC;IACvC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,IAAI,KAAK,GAAG,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;QACxD,KAAK;QACL,OAAO;QACP,eAAe,EAAE,mBAAmB;QACpC,WAAW,EAAE,eAAe;QAC5B,oBAAoB;QACpB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,IAA6B,EAC7B,QAAgB,EAChB,KAAe,EACf,SAAwB,EACxB,KAAoG,EACpG,UAA+B,EAC/B,aAAkC,EAClC,KAAsB,EACtB,UAAmG,EAAE;IAErG,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,YAAY,GAAG,2CAA2C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1F,MAAM,WAAW,GAAG,qCAAqC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,wDAAwD,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,gDAAgD,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG;QACrB,GAAG,oCAAoC,CAAC,SAAS,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,mCAAmC,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,+DAA+D,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACnJ,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mCAAmC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAExH,IAAI,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,eAAe,IAAI,MAAM,SAAS,UAAU,KAAK,MAAM,UAAU,oCAAoC,CAAC;QACjH,CAAC;aAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,UAAU,IAAI,iBAAiB,SAAS,oBAAoB,KAAK,oCAAoC,CAAC;QACjH,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,cAAc,IAAI,wBAAwB,KAAK,aAAa,UAAU,gCAAgC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,4BAA4B,IAAI,SAAS,KAAK,oCAAoC,CAAC;QAC9F,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,oBAAoB,IAAI,SAAS,KAAK,GAAG,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,SAAS,KAAK,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;IACjF,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,4EAA4E,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;IACvH,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1G,MAAM,cAAc,GAAG,eAAe,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,GAAG,sFAAsF,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,MAAM,GAAG;gBACP,kDAAkD;gBAClD,KAAK,cAAc,IAAI;gBACvB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aAClH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,GAAG,CAAC,mEAAmE,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxG,CAAC;SAAM,IAAI,YAAY,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,kBAAkB,GAAG,cAAc;aACtC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACtD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC,yDAAyD,EAAE,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrG,CAAC;SAAM,IAAI,WAAW,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,YAAY,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,2GAA2G,CAAC;QACvH,CAAC;aAAM,IAAI,aAAa,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,GAAG,wEAAwE,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,kFAAkF,CAAC;QAC9F,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,cAAc;YACtC,CAAC,CAAC,CAAC,6EAA6E,EAAE,4BAA4B,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACtI,CAAC,CAAC,CAAC,uCAAuC,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,gCAAgC,KAAK,CAAC,YAAY,6DAA6D,CAAC;IAC3H,CAAC;IAED,IAAI,YAAY,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,WAAW,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IACpH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,YAAY,qBAAqB,KAAK,CAAC,YAAY,WAAW,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IACnG,CAAC;IAED,OAAO;QACL,QAAQ;QACR,kBAAkB,EAAE,kBAAkB;QACtC,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,UAAU;QACV,KAAK,EAAE;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC;QACD,SAAS;QACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,OAA6G;IAE7G,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;YAC1D,KAAK,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM;SACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC/G,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,iBAAiB,UAAU,WAAW,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,eAAe,kBAAkB,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CACnK,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,MAAM,CAAC,KAAK,CAAC,YAAY,YAAY,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACvJ,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,UAAsB,EAAE;IACzE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,yCAA0B,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;QACzB,MAAM,cAAc,GAAG,IAAA,oBAAY,GAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,cAAc,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAClF,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC;QAC5F,MAAM,kBAAkB,GAAG,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAA,gDAA6B,EAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,4CAAyB,EAC7C,GAAG,EACH,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAA,qCAAwB,EAAC,GAAG,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAA,+BAAkB,GAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAA,kCAAqB,EAAC,GAAG,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,cAAc,IAAI,IAAA,6CAAgC,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE1F,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,IAAA,gDAAgC,EAAC,GAAG,EAAE,KAAK,EAAE;oBAC3C,eAAe,EAAE,cAAc,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;oBAC5F,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QAED,IAAI,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,IAAA,kCAAsB,EAAC;gBAC1C,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAA,8BAAkB,EAAC;gBAClC,aAAa,EAAE,CAAC;gBAChB,KAAK;gBACL,SAAS;gBACT,IAAI,EAAE,eAAe;gBACrB,YAAY;gBACZ,iBAAiB;gBACjB,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,yBAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,WAAW,GAAqB;oBACpC,GAAG,KAAK,CAAC,MAAM;oBACf,QAAQ;oBACR,kBAAkB,EAAE,kBAAkB;iBACvC,CAAC;gBACF,aAAa,CAAC,WAAW,EAAE;oBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,YAAY;oBACZ,UAAU,EAAE,iCAAiC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,GAAG;oBAC1F,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;gBACH,IAAA,wCAAwB,EAAC,GAAG,EAAE,KAAK,EAAE;oBACnC,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,iBAAiB;iBACxB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,IAAA,6BAAiB,EAAC,GAAG,EAAE;gBAClC,KAAK;gBACL,SAAS;gBACT,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,kBAAkB;gBAC5B,iBAAiB;gBACjB,eAAe;gBACf,WAAW,EAAE,aAAa,CAAC,IAAI;gBAC/B,YAAY,EAAE,IAAA,sCAA0B,EAAC,GAAG,CAAC;gBAC7C,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAqB;oBACnC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;oBACpB,QAAQ;oBACR,kBAAkB,EAAE,kBAAkB;iBACvC,CAAC;gBACF,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,KAAK,kCAAkC;oBAChD,CAAC,CAAC,4CAA4C;oBAC9C,CAAC,CAAC,0BAA0B,CAAC;gBACjC,aAAa,CAAC,UAAU,EAAE;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,YAAY;oBACZ,UAAU,EAAE,GAAG,UAAU,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;oBAClI,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;gBACH,IAAA,wCAAwB,EAAC,GAAG,EAAE,KAAK,EAAE;oBACnC,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,6BAA6B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE;iBACtF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,IAAI,SAAS;YACrC,CAAC,CAAC,IAAA,yCAAyB,EAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC1E,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,+BAA+B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,iCAAiC,YAAY,CAAC,iBAAiB,gBAAgB,CAAC,CAAC,CAAC;QACpI,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE/C,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC;QACD,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,YAAY,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC3B,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAAE,KAAK,IAAI,GAAG,CAAC;gBACnD,CAAC;gBACD,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1C,KAAK,IAAI,GAAG,CAAC;gBACf,CAAC;gBACD,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1C,KAAK,IAAI,GAAG,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;oBAC/G,KAAK,IAAI,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC9D,KAAK,IAAI,IAAI,CAAC;gBAChB,CAAC;qBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,KAAK,IAAI,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC3B,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC3B,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBACpF,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;YACjC,kCAAkC;YAClC,qCAAqC;SACtC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,CAAC;aAClC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC,CAAC,WAAW,CAAC;QAChB,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,MAAM,IAAI,iBAAiB;gBAAE,MAAM;YACjD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;oBAAE,SAAS;gBACvC,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,YAAY,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC5C,IAAI,SAAS,CAAC,MAAM,IAAI,iBAAiB;oBAAE,MAAM;gBACjD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,SAAS;oBACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,OAAO;wBAAE,SAAS;oBAEvB,MAAM,QAAQ,GAAiB;wBAC7B,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,GAAG,GAAG,CAAC;wBACb,OAAO;wBACP,IAAI,EAAE,OAAO,CAAC,KAAK;wBACnB,MAAM,EACJ,OAAO,CAAC,MAAM;4BACd,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACjC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnE,CAAC;oBAEF,MAAM,SAAS,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC7E,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;wBAC3F,SAAS;oBACX,CAAC;oBAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,iBAAiB,GAAmB,EAAE,CAAC;QAC7C,IAAI,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAC/E,IAAI,YAAY,EAAE,CAAC;oBACjB,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,iBAAiB,CAAC,MAAM,IAAI,YAAY;gBAAE,MAAM;YACpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChJ,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/E,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,IAAI;SACL,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG;YACZ,YAAY;YACZ,YAAY,EAAE,mBAAmB,CAAC,IAAI;YACtC,YAAY,EAAE,cAAc,CAAC,MAAM;YACnC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;SAC7C,CAAC;QACF,MAAM,KAAK,GAAG,uBAAuB,CACnC,IAAI,EACJ,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;QAEF,MAAM,MAAM,GAAG,WAAW,CACxB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,cAAc,EACd,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,EACL;YACE,cAAc;YACd,aAAa,EAAE,gBAAgB;YAC/B,cAAc;SACf,CACF,CAAC;QAEF,aAAa,CAAC,MAAM,EAAE;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,IAAA,wCAAwB,EAAC,GAAG,EAAE,KAAK,EAAE;gBACnC,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ,IAAI,UAAU,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,YAAY,kBAAkB,KAAK,CAAC,YAAY,EAAE;aACnJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,IAAA,kCAAsB,EAAC;gBAC1C,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,IAAA,8BAAkB,EAAC;gBAC7B,aAAa,EAAE,CAAC;gBAChB,KAAK;gBACL,SAAS;gBACT,IAAI,EAAE,eAAe;gBACrB,YAAY;gBACZ,iBAAiB;gBACjB,eAAe;aAChB,CAAC,CAAC;YACH,IAAA,0BAAc,EAAC,GAAG,EAAE;gBAClB,GAAG;gBACH,KAAK,EAAE;oBACL,aAAa,EAAE,CAAC;oBAChB,KAAK;oBACL,SAAS;oBACT,IAAI,EAAE,eAAe;oBACrB,YAAY;oBACZ,iBAAiB;oBACjB,eAAe;oBACf,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,aAAa,CAAC,IAAI;iBAChC;gBACD,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|