create-expo-super-stack 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.d.ts ADDED
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env node
2
+ export interface ParsedArgs {
3
+ projectName?: string;
4
+ createExpoStackArgs: string[];
5
+ helpRequested: boolean;
6
+ mds: {
7
+ appName?: string;
8
+ audience?: string;
9
+ coreFlows?: string;
10
+ dataNeeds?: string;
11
+ dataStart?: 'local' | 'supabase';
12
+ deploymentTarget?: string;
13
+ defaults?: string[];
14
+ createExpoStackBin?: string;
15
+ force: boolean;
16
+ guidelinesTemplate?: boolean;
17
+ guidelinesTemplatePath?: string;
18
+ rich?: boolean;
19
+ skipExpoFix: boolean;
20
+ testToMain?: boolean;
21
+ projectParentDir?: string;
22
+ yes: boolean;
23
+ skipCreate: boolean;
24
+ platforms?: string[];
25
+ firstPlatform?: string;
26
+ platformStrategy?: 'folders' | 'files-only';
27
+ appDirectory?: 'src' | 'root';
28
+ platformLayouts?: 'shared' | 'platform-specific';
29
+ webOutput?: 'static' | 'server' | 'spa' | 'none';
30
+ deployedServer?: 'standard-expo' | 'custom' | 'none';
31
+ createExpoComponents?: boolean;
32
+ latestExpoSdk?: boolean;
33
+ expoUi?: boolean;
34
+ expoNativeTabs?: boolean;
35
+ easUses?: string[];
36
+ };
37
+ }
38
+ type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
39
+ interface CommandSpec {
40
+ command: string;
41
+ args: string[];
42
+ display: string;
43
+ shell?: boolean;
44
+ env?: Record<string, string>;
45
+ }
46
+ interface ExpoProjectCheckOptions {
47
+ useLatestExpoSdk?: boolean;
48
+ }
49
+ export declare function main(): Promise<void>;
50
+ export declare function parseArgs(args: string[]): ParsedArgs;
51
+ export declare function renderHelpText(): string;
52
+ export declare function withResolvedProjectName(parsed: ParsedArgs, projectName: string): ParsedArgs;
53
+ export declare function resolveProjectTarget(rawProjectName: string, cwd?: string): {
54
+ projectName: string;
55
+ parentDir: string;
56
+ };
57
+ export declare function validateCreateExpoStackArgs(args: string[]): void;
58
+ export declare function runExpoProjectChecks(projectPath: string, packageManager: PackageManager, options?: ExpoProjectCheckOptions): Promise<void>;
59
+ export declare function repairExpoProjectIdentifiers(projectPath: string, projectName: string): Promise<string[]>;
60
+ export declare function buildInstallCommand(packageManager: PackageManager): CommandSpec;
61
+ export declare function buildExpoInstallFixCommand(packageManager: PackageManager): CommandSpec;
62
+ export declare function buildExpoLatestSdkCommand(packageManager: PackageManager): CommandSpec;
63
+ export declare function shouldRunExpoLatestSdkCommand(projectPath: string): Promise<boolean>;
64
+ export declare function shouldRunExpoLatestSdkCommandFromPackageJson(packageJson: Record<string, unknown>): boolean;
65
+ export declare function buildExpoFontInstallCommand(packageManager: PackageManager): CommandSpec;
66
+ export declare function buildExpoDoctorCommand(packageManager: PackageManager): CommandSpec;
67
+ export declare function shouldInstallExpoFontPeer(projectPath: string): Promise<boolean>;
68
+ export declare function shouldInstallExpoFontPeerFromPackageJson(packageJson: Record<string, unknown>): boolean;
69
+ export declare function detectEasSetup(projectPath: string, createExpoStackArgs: string[]): Promise<boolean | undefined>;
70
+ export declare function toExpoSlug(value: string): string;
71
+ export declare function toExpoScheme(value: string): string;
72
+ export declare function isCliEntryPoint(argv?: string[]): boolean;
73
+ export {};
74
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js ADDED
@@ -0,0 +1,1012 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'node:child_process';
3
+ import { access, mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import { fileURLToPath, pathToFileURL } from 'node:url';
6
+ import { cancel, isCancel, log, text } from '@clack/prompts';
7
+ import { SUPER_STACK_SUCCESS_MESSAGE, collectOnboardPlan, defaultOnboardPlan } from '@mr.dj2u/cli/onboarding';
8
+ import { scaffoldProjectMemory } from '@mr.dj2u/cli/project-memory';
9
+ const DEFAULT_PROJECT_NAME = 'my-expo-app';
10
+ const CURRENT_EXPO_SDK_MAJOR = 55;
11
+ export async function main() {
12
+ const initialParsed = parseArgs(process.argv.slice(2));
13
+ if (initialParsed.helpRequested) {
14
+ console.log(renderHelpText());
15
+ return;
16
+ }
17
+ const parsed = withResolvedProjectName(initialParsed, await promptForMissingProjectName(initialParsed));
18
+ validateCreateExpoStackArgs(parsed.createExpoStackArgs);
19
+ const projectName = parsed.projectName ?? DEFAULT_PROJECT_NAME;
20
+ const projectParentDir = parsed.mds.projectParentDir ?? process.cwd();
21
+ printIntro(projectName, parsed.createExpoStackArgs, projectParentDir);
22
+ if (!parsed.mds.skipCreate) {
23
+ await runCreateExpoStack(parsed.createExpoStackArgs, parsed.mds.createExpoStackBin, projectParentDir);
24
+ }
25
+ else {
26
+ console.log('Skipping create-expo-stack because --mds-skip-create was passed.');
27
+ }
28
+ const projectPath = await resolveGeneratedProjectPath(projectParentDir, projectName);
29
+ const easSelected = await detectEasSetup(projectPath, parsed.createExpoStackArgs);
30
+ const onboardArgv = buildOnboardArgv(projectPath, parsed, easSelected);
31
+ const plan = parsed.mds.yes
32
+ ? defaultOnboardPlan(onboardArgv, projectPath)
33
+ : await collectOnboardPlan(onboardArgv, projectPath);
34
+ const movedAppDir = !parsed.mds.skipCreate && plan.answers.appDirectory === 'src'
35
+ ? await moveRootAppIntoSrc(projectPath)
36
+ : null;
37
+ const written = await scaffoldProjectMemory(projectPath, plan.answers, {
38
+ force: parsed.mds.force,
39
+ guidelinesTemplate: plan.guidelinesTemplate,
40
+ guidelinesTemplatePath: plan.guidelinesTemplatePath,
41
+ manageUniwind: parsed.mds.skipCreate,
42
+ richBoilerplate: plan.richBoilerplate,
43
+ });
44
+ const identifierRepairs = await repairExpoProjectIdentifiers(projectPath, projectName);
45
+ console.log();
46
+ console.log('MDS onboarding complete.');
47
+ for (const result of written) {
48
+ console.log(`${result.wrote ? 'CREATED' : 'KEPT'} ${path.relative(process.cwd(), result.filePath)}`);
49
+ }
50
+ if (movedAppDir) {
51
+ console.log(`MOVED ${path.relative(process.cwd(), movedAppDir.from)} -> ${path.relative(process.cwd(), movedAppDir.to)}`);
52
+ }
53
+ for (const result of identifierRepairs) {
54
+ console.log(`UPDATED ${path.relative(process.cwd(), result)}`);
55
+ }
56
+ const packageManager = await detectPackageManager(projectPath, parsed.createExpoStackArgs);
57
+ const noInstallRequested = hasNoInstallFlag(parsed.createExpoStackArgs);
58
+ if (shouldRunExpoProjectChecks(parsed, noInstallRequested)) {
59
+ await runExpoProjectChecks(projectPath, packageManager, {
60
+ useLatestExpoSdk: plan.answers.useLatestExpoSdk,
61
+ });
62
+ }
63
+ else if (noInstallRequested) {
64
+ console.log();
65
+ console.log('Skipped install and Expo dependency repair because create-expo-stack was run with --no-install.');
66
+ }
67
+ console.log();
68
+ console.log('Onboarding next steps:');
69
+ console.log('1. Play with styling in the style-guide page.');
70
+ console.log('2. Browse exposition pages to understand included base packages.');
71
+ console.log('3. Review project/ files for accuracy and planning adjustments.');
72
+ console.log('4. Tell the agent to commence development phase by phase.');
73
+ console.log();
74
+ console.log('Next steps:');
75
+ console.log(` cd ${quoteDisplayArg(path.relative(process.cwd(), projectPath) || '.')}`);
76
+ if (noInstallRequested || parsed.mds.skipExpoFix || parsed.mds.skipCreate) {
77
+ console.log(` ${buildInstallCommand(packageManager).display}`);
78
+ if (plan.answers.useLatestExpoSdk && (await shouldRunExpoLatestSdkCommand(projectPath))) {
79
+ console.log(` ${buildExpoLatestSdkCommand(packageManager).display}`);
80
+ }
81
+ console.log(` ${buildExpoInstallFixCommand(packageManager).display}`);
82
+ if (await shouldInstallExpoFontPeer(projectPath)) {
83
+ console.log(` ${buildExpoFontInstallCommand(packageManager).display}`);
84
+ }
85
+ console.log(` ${buildExpoDoctorCommand(packageManager).display}`);
86
+ }
87
+ console.log(` ${buildRunScriptCommand(packageManager, 'clear-expo-start')}`);
88
+ console.log();
89
+ console.log(SUPER_STACK_SUCCESS_MESSAGE);
90
+ console.log();
91
+ console.log('For the full dev-suite locally, use the generated scripts or install @mr.dj2u/cli in the app.');
92
+ }
93
+ export function parseArgs(args) {
94
+ const createExpoStackArgs = [];
95
+ const mds = {
96
+ force: false,
97
+ skipExpoFix: false,
98
+ yes: false,
99
+ skipCreate: false,
100
+ };
101
+ let projectName;
102
+ let helpRequested = false;
103
+ for (let index = 0; index < args.length; index += 1) {
104
+ const arg = args[index];
105
+ if (!arg) {
106
+ continue;
107
+ }
108
+ if (!arg.startsWith('--') && !projectName) {
109
+ if (arg === '-h') {
110
+ helpRequested = true;
111
+ continue;
112
+ }
113
+ projectName = arg;
114
+ createExpoStackArgs.push(arg);
115
+ continue;
116
+ }
117
+ if (arg === '--help' || arg === '-h' || arg === '--mds-help') {
118
+ helpRequested = true;
119
+ continue;
120
+ }
121
+ if (arg === '--mds-force') {
122
+ mds.force = true;
123
+ continue;
124
+ }
125
+ if (arg === '--mds-no-rich') {
126
+ mds.rich = false;
127
+ continue;
128
+ }
129
+ if (arg === '--mds-rich') {
130
+ mds.rich = true;
131
+ continue;
132
+ }
133
+ if (arg === '--mds-yes' || arg === '--mds-non-interactive') {
134
+ mds.yes = true;
135
+ continue;
136
+ }
137
+ if (arg === '--mds-skip-create') {
138
+ mds.skipCreate = true;
139
+ continue;
140
+ }
141
+ if (arg === '--mds-skip-expo-fix' || arg === '--mds-no-expo-fix') {
142
+ mds.skipExpoFix = true;
143
+ continue;
144
+ }
145
+ if (arg.startsWith('--mds-create-expo-stack-bin=')) {
146
+ mds.createExpoStackBin = arg.slice('--mds-create-expo-stack-bin='.length);
147
+ continue;
148
+ }
149
+ if (arg === '--mds-guidelines-template') {
150
+ mds.guidelinesTemplate = true;
151
+ continue;
152
+ }
153
+ if (arg.startsWith('--mds-guidelines-template=')) {
154
+ mds.guidelinesTemplate = true;
155
+ mds.guidelinesTemplatePath = arg.slice('--mds-guidelines-template='.length);
156
+ continue;
157
+ }
158
+ if (arg.startsWith('--mds-guidelines-template-path=')) {
159
+ mds.guidelinesTemplate = true;
160
+ mds.guidelinesTemplatePath = arg.slice('--mds-guidelines-template-path='.length);
161
+ continue;
162
+ }
163
+ if (arg.startsWith('--mds-defaults=')) {
164
+ mds.defaults = splitList(arg.slice('--mds-defaults='.length));
165
+ continue;
166
+ }
167
+ if (arg.startsWith('--mds-app-name=')) {
168
+ mds.appName = arg.slice('--mds-app-name='.length);
169
+ continue;
170
+ }
171
+ if (arg.startsWith('--mds-audience=')) {
172
+ mds.audience = arg.slice('--mds-audience='.length);
173
+ continue;
174
+ }
175
+ if (arg.startsWith('--mds-core-flows=')) {
176
+ mds.coreFlows = arg.slice('--mds-core-flows='.length);
177
+ continue;
178
+ }
179
+ if (arg.startsWith('--mds-data-needs=')) {
180
+ mds.dataNeeds = arg.slice('--mds-data-needs='.length);
181
+ continue;
182
+ }
183
+ if (arg.startsWith('--mds-data-start=')) {
184
+ const value = arg.slice('--mds-data-start='.length);
185
+ if (value === 'local' || value === 'supabase') {
186
+ mds.dataStart = value;
187
+ }
188
+ continue;
189
+ }
190
+ if (arg.startsWith('--mds-deployment-target=')) {
191
+ mds.deploymentTarget = arg.slice('--mds-deployment-target='.length);
192
+ continue;
193
+ }
194
+ if (arg === '--mds-test-to-main') {
195
+ mds.testToMain = true;
196
+ continue;
197
+ }
198
+ if (arg === '--mds-no-test-to-main') {
199
+ mds.testToMain = false;
200
+ continue;
201
+ }
202
+ if (arg.startsWith('--mds-platforms=')) {
203
+ mds.platforms = splitList(arg.slice('--mds-platforms='.length));
204
+ continue;
205
+ }
206
+ if (arg.startsWith('--mds-first-platform=')) {
207
+ mds.firstPlatform = arg.slice('--mds-first-platform='.length);
208
+ continue;
209
+ }
210
+ if (arg.startsWith('--mds-platform-strategy=')) {
211
+ const value = arg.slice('--mds-platform-strategy='.length);
212
+ if (value === 'folders' || value === 'files-only') {
213
+ mds.platformStrategy = value;
214
+ }
215
+ continue;
216
+ }
217
+ if (arg.startsWith('--mds-app-directory=')) {
218
+ const value = arg.slice('--mds-app-directory='.length);
219
+ if (value === 'src' || value === 'root') {
220
+ mds.appDirectory = value;
221
+ }
222
+ continue;
223
+ }
224
+ if (arg.startsWith('--mds-platform-layouts=')) {
225
+ const value = arg.slice('--mds-platform-layouts='.length);
226
+ if (value === 'shared' || value === 'platform-specific') {
227
+ mds.platformLayouts = value;
228
+ }
229
+ continue;
230
+ }
231
+ if (arg.startsWith('--mds-web-output=')) {
232
+ const value = arg.slice('--mds-web-output='.length);
233
+ if (value === 'static' || value === 'server' || value === 'spa' || value === 'none') {
234
+ mds.webOutput = value;
235
+ }
236
+ continue;
237
+ }
238
+ if (arg.startsWith('--mds-deployed-server=')) {
239
+ const value = arg.slice('--mds-deployed-server='.length);
240
+ if (value === 'standard-expo' || value === 'custom' || value === 'none') {
241
+ mds.deployedServer = value;
242
+ }
243
+ continue;
244
+ }
245
+ if (arg === '--mds-create-expo-components') {
246
+ mds.createExpoComponents = true;
247
+ continue;
248
+ }
249
+ if (arg === '--mds-no-create-expo-components') {
250
+ mds.createExpoComponents = false;
251
+ continue;
252
+ }
253
+ if (arg === '--mds-latest-expo-sdk') {
254
+ mds.latestExpoSdk = true;
255
+ continue;
256
+ }
257
+ if (arg === '--mds-no-latest-expo-sdk') {
258
+ mds.latestExpoSdk = false;
259
+ continue;
260
+ }
261
+ if (arg === '--mds-expo-ui') {
262
+ mds.expoUi = true;
263
+ continue;
264
+ }
265
+ if (arg === '--mds-no-expo-ui') {
266
+ mds.expoUi = false;
267
+ continue;
268
+ }
269
+ if (arg === '--mds-expo-native-tabs') {
270
+ mds.expoNativeTabs = true;
271
+ continue;
272
+ }
273
+ if (arg === '--mds-no-expo-native-tabs') {
274
+ mds.expoNativeTabs = false;
275
+ continue;
276
+ }
277
+ if (arg.startsWith('--mds-eas-uses=')) {
278
+ mds.easUses = splitList(arg.slice('--mds-eas-uses='.length));
279
+ continue;
280
+ }
281
+ createExpoStackArgs.push(arg);
282
+ }
283
+ return {
284
+ projectName,
285
+ createExpoStackArgs,
286
+ helpRequested,
287
+ mds,
288
+ };
289
+ }
290
+ export function renderHelpText() {
291
+ return [
292
+ 'create-expo-super-stack',
293
+ '',
294
+ 'Usage:',
295
+ ' create-expo-super-stack [project-name] [create-expo-stack options] [mds options]',
296
+ '',
297
+ 'Examples:',
298
+ ' create-expo-super-stack my-app --expo-router --uniwind',
299
+ ' create-expo-super-stack ../MyApp --expo-router --mds-yes',
300
+ '',
301
+ 'Common mds options:',
302
+ ' --mds-yes Run non-interactive onboarding defaults',
303
+ ' --mds-skip-create Skip create-expo-stack and only run onboarding in an existing app',
304
+ ' --mds-skip-expo-fix Skip dependency install/fix/doctor repair pass',
305
+ ' --mds-guidelines-template Use bundled MDS project/guidelines template',
306
+ ' --mds-app-name=<name> Set display app name for project memory',
307
+ '',
308
+ 'Help:',
309
+ ' -h, --help Show this help and exit',
310
+ '',
311
+ 'Note:',
312
+ ' Unknown non-mds flags are forwarded to create-expo-stack.',
313
+ ].join('\n');
314
+ }
315
+ export function withResolvedProjectName(parsed, projectName) {
316
+ const target = resolveProjectTarget(parsed.projectName ?? projectName);
317
+ const resolvedProjectName = target.projectName;
318
+ const createExpoStackArgs = parsed.mds.skipCreate
319
+ ? parsed.createExpoStackArgs
320
+ : replaceProjectArg(parsed.createExpoStackArgs, resolvedProjectName);
321
+ if (parsed.projectName) {
322
+ return {
323
+ ...parsed,
324
+ projectName: resolvedProjectName,
325
+ createExpoStackArgs,
326
+ mds: {
327
+ ...parsed.mds,
328
+ projectParentDir: target.parentDir,
329
+ appName: parsed.mds.appName ?? resolvedProjectName,
330
+ },
331
+ };
332
+ }
333
+ return {
334
+ ...parsed,
335
+ projectName: resolvedProjectName,
336
+ createExpoStackArgs,
337
+ mds: {
338
+ ...parsed.mds,
339
+ projectParentDir: target.parentDir,
340
+ appName: parsed.mds.appName ?? resolvedProjectName,
341
+ },
342
+ };
343
+ }
344
+ async function promptForMissingProjectName(parsed) {
345
+ if (parsed.projectName) {
346
+ return parsed.projectName;
347
+ }
348
+ if (parsed.mds.yes || parsed.mds.skipCreate) {
349
+ return DEFAULT_PROJECT_NAME;
350
+ }
351
+ const answer = await text({
352
+ message: 'What do you want to name your Expo app?',
353
+ placeholder: DEFAULT_PROJECT_NAME,
354
+ defaultValue: DEFAULT_PROJECT_NAME,
355
+ validate: (value) => {
356
+ if (!value.trim()) {
357
+ return 'Please enter an app name, or press Enter to use the visible default.';
358
+ }
359
+ return undefined;
360
+ },
361
+ });
362
+ if (isCancel(answer)) {
363
+ cancel('Cancelled. You can rerun create-expo-super-stack whenever you are ready.');
364
+ process.exit(0);
365
+ }
366
+ const projectName = answer.trim() || DEFAULT_PROJECT_NAME;
367
+ log.success(`Great, creating ${projectName}.`);
368
+ return projectName;
369
+ }
370
+ function printIntro(projectName, createExpoStackArgs, projectParentDir = process.cwd()) {
371
+ console.log('create-expo-super-stack');
372
+ console.log();
373
+ console.log('This uses create-expo-stack under the hood, then applies MDS onboarding.');
374
+ console.log(`Delegating: create-expo-stack ${formatDisplayArgs(createExpoStackArgs)}`);
375
+ console.log(`Target app: ${projectName}`);
376
+ if (projectParentDir !== process.cwd()) {
377
+ console.log(`Target folder: ${path.join(projectParentDir, projectName)}`);
378
+ }
379
+ console.log();
380
+ }
381
+ async function runCreateExpoStack(args, overrideBin, cwd = process.cwd()) {
382
+ const command = await resolveCreateExpoStackCommand(overrideBin);
383
+ console.log(`Using create-expo-stack command: ${command.display}`);
384
+ await new Promise((resolve, reject) => {
385
+ const child = spawn(command.command, [...command.args, ...args], {
386
+ cwd,
387
+ shell: command.shell ?? process.platform === 'win32',
388
+ stdio: 'inherit',
389
+ windowsHide: true,
390
+ });
391
+ child.on('error', reject);
392
+ child.on('close', (code) => {
393
+ if (code === 0) {
394
+ resolve();
395
+ }
396
+ else {
397
+ reject(new Error(`create-expo-stack exited with code ${code ?? 'unknown'}.`));
398
+ }
399
+ });
400
+ });
401
+ }
402
+ export function resolveProjectTarget(rawProjectName, cwd = process.cwd()) {
403
+ const trimmed = rawProjectName.trim();
404
+ const normalized = trimmed.replace(/[\\/]+$/u, '') || DEFAULT_PROJECT_NAME;
405
+ const hasPathSyntax = path.isAbsolute(normalized) || normalized.includes('/') || normalized.includes('\\');
406
+ if (!hasPathSyntax) {
407
+ return {
408
+ projectName: normalized,
409
+ parentDir: cwd,
410
+ };
411
+ }
412
+ const projectName = path.basename(normalized) || DEFAULT_PROJECT_NAME;
413
+ const parentDir = path.resolve(cwd, path.dirname(normalized));
414
+ return {
415
+ projectName,
416
+ parentDir,
417
+ };
418
+ }
419
+ function replaceProjectArg(args, projectName) {
420
+ const nextArgs = [...args];
421
+ const projectArgIndex = nextArgs.findIndex((arg) => !arg.startsWith('--'));
422
+ if (projectArgIndex >= 0) {
423
+ nextArgs[projectArgIndex] = projectName;
424
+ return nextArgs;
425
+ }
426
+ return [projectName, ...nextArgs];
427
+ }
428
+ export function validateCreateExpoStackArgs(args) {
429
+ const authFlags = ['--supabase', '--firebase'].filter((flag) => args.some((arg) => arg === flag || arg.startsWith(`${flag}=`)));
430
+ if (authFlags.length > 1) {
431
+ throw new Error(`Choose one create-expo-stack auth provider, not ${authFlags.join(' and ')}. create-expo-stack scaffolds a single auth slice; Super Stack can still document future data/backend plans in project/.`);
432
+ }
433
+ }
434
+ export async function runExpoProjectChecks(projectPath, packageManager, options = {}) {
435
+ console.log();
436
+ console.log('Installing MDS-added dependencies, then running Expo dependency repair and doctor.');
437
+ await runProjectCommand(projectPath, buildInstallCommand(packageManager));
438
+ if (options.useLatestExpoSdk && (await shouldRunExpoLatestSdkCommand(projectPath))) {
439
+ await runProjectCommand(projectPath, buildExpoLatestSdkCommand(packageManager));
440
+ }
441
+ else if (options.useLatestExpoSdk) {
442
+ console.log(` Expo SDK already targets SDK ${CURRENT_EXPO_SDK_MAJOR}; skipping expo@latest.`);
443
+ }
444
+ await runProjectCommand(projectPath, buildExpoInstallFixCommand(packageManager));
445
+ if (await shouldInstallExpoFontPeer(projectPath)) {
446
+ await runProjectCommand(projectPath, buildExpoFontInstallCommand(packageManager));
447
+ }
448
+ await runProjectCommand(projectPath, buildExpoDoctorCommand(packageManager));
449
+ }
450
+ async function runProjectCommand(projectPath, spec) {
451
+ console.log(` ${spec.display}`);
452
+ await new Promise((resolve, reject) => {
453
+ const child = spawn(spec.command, spec.args, {
454
+ cwd: projectPath,
455
+ shell: spec.shell ?? process.platform === 'win32',
456
+ stdio: 'inherit',
457
+ env: spec.env ? { ...process.env, ...spec.env } : process.env,
458
+ windowsHide: true,
459
+ });
460
+ child.on('error', reject);
461
+ child.on('close', (code) => {
462
+ if (code === 0) {
463
+ resolve();
464
+ }
465
+ else {
466
+ reject(new Error(`${spec.display} exited with code ${code ?? 'unknown'}.`));
467
+ }
468
+ });
469
+ });
470
+ }
471
+ async function resolveCreateExpoStackCommand(overrideBin) {
472
+ const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
473
+ const executable = process.platform === 'win32' ? 'create-expo-stack.cmd' : 'create-expo-stack';
474
+ const override = overrideBin ?? process.env.MRDJ_CREATE_EXPO_STACK_BIN ?? process.env.CREATE_EXPO_STACK_BIN;
475
+ if (override) {
476
+ const overridePath = path.resolve(override);
477
+ return {
478
+ command: process.execPath,
479
+ args: [overridePath],
480
+ display: `node ${overridePath}`,
481
+ shell: false,
482
+ };
483
+ }
484
+ const localForkCliRoot = path.join(packageRoot, '..', '..', '..', 'create-expo-stack', 'cli');
485
+ const localForkBin = path.join(localForkCliRoot, 'bin', 'create-expo-stack.js');
486
+ if (await pathExists(localForkBin)) {
487
+ await ensureLocalCreateExpoStackBuild(localForkCliRoot);
488
+ return {
489
+ command: process.execPath,
490
+ args: [localForkBin],
491
+ display: `node ${localForkBin}`,
492
+ shell: false,
493
+ };
494
+ }
495
+ const candidates = [
496
+ path.join(packageRoot, 'node_modules', '.bin', executable),
497
+ path.join(packageRoot, '..', '..', 'node_modules', '.bin', executable),
498
+ ];
499
+ for (const candidate of candidates) {
500
+ if (await pathExists(candidate)) {
501
+ return {
502
+ command: candidate,
503
+ args: [],
504
+ display: candidate,
505
+ };
506
+ }
507
+ }
508
+ return {
509
+ command: 'create-expo-stack',
510
+ args: [],
511
+ display: 'create-expo-stack',
512
+ };
513
+ }
514
+ async function ensureLocalCreateExpoStackBuild(localForkCliRoot) {
515
+ const buildEntry = path.join(localForkCliRoot, 'build', 'cli.js');
516
+ if (await pathExists(buildEntry)) {
517
+ return;
518
+ }
519
+ console.log(`Building local create-expo-stack fork: ${localForkCliRoot}`);
520
+ if (await commandExists('bun')) {
521
+ await runProjectCommand(localForkCliRoot, {
522
+ command: 'bun',
523
+ args: ['run', 'build'],
524
+ display: 'bun run build',
525
+ });
526
+ return;
527
+ }
528
+ console.log('Bun was not found, so using npm to build the local fork.');
529
+ if (!(await pathExists(path.join(localForkCliRoot, 'node_modules')))) {
530
+ await runProjectCommand(localForkCliRoot, {
531
+ command: 'npm',
532
+ args: ['install'],
533
+ display: 'npm install',
534
+ });
535
+ }
536
+ await runProjectCommand(localForkCliRoot, {
537
+ command: 'npx',
538
+ args: ['tsc', '-p', '.'],
539
+ display: 'npx tsc -p .',
540
+ });
541
+ await runProjectCommand(localForkCliRoot, {
542
+ command: 'npx',
543
+ args: ['copyfiles', '-u', '2', '-a', './src/templates/**/*', './build/templates'],
544
+ display: 'npx copyfiles -u 2 -a "./src/templates/**/*" ./build/templates',
545
+ });
546
+ }
547
+ async function commandExists(command) {
548
+ return new Promise((resolve) => {
549
+ const child = spawn(command, ['--version'], {
550
+ shell: process.platform === 'win32',
551
+ stdio: 'ignore',
552
+ windowsHide: true,
553
+ });
554
+ child.on('error', () => resolve(false));
555
+ child.on('close', (code) => resolve(code === 0));
556
+ });
557
+ }
558
+ async function resolveGeneratedProjectPath(cwd, projectName) {
559
+ const directPath = path.resolve(cwd, projectName);
560
+ if (await pathExists(path.join(directPath, 'package.json'))) {
561
+ return directPath;
562
+ }
563
+ const fromCesConfig = await findProjectFromCesConfig(cwd, projectName);
564
+ if (fromCesConfig) {
565
+ return fromCesConfig;
566
+ }
567
+ return directPath;
568
+ }
569
+ async function moveRootAppIntoSrc(projectPath) {
570
+ const rootAppDir = path.join(projectPath, 'app');
571
+ const srcAppDir = path.join(projectPath, 'src', 'app');
572
+ if (!(await pathExists(rootAppDir)) || (await pathExists(srcAppDir))) {
573
+ return null;
574
+ }
575
+ await mkdir(path.dirname(srcAppDir), { recursive: true });
576
+ await rename(rootAppDir, srcAppDir);
577
+ return { from: rootAppDir, to: srcAppDir };
578
+ }
579
+ export async function repairExpoProjectIdentifiers(projectPath, projectName) {
580
+ const appJsonPath = path.join(projectPath, 'app.json');
581
+ const raw = await readOptionalText(appJsonPath);
582
+ if (!raw) {
583
+ return [];
584
+ }
585
+ let parsed;
586
+ try {
587
+ const value = JSON.parse(raw);
588
+ parsed = isRecord(value) ? value : {};
589
+ }
590
+ catch {
591
+ return [];
592
+ }
593
+ const expo = isRecord(parsed.expo) ? parsed.expo : undefined;
594
+ if (!expo) {
595
+ return [];
596
+ }
597
+ const nextSlug = toExpoSlug(readString(expo.slug) ?? projectName);
598
+ const currentScheme = expo.scheme;
599
+ const hasScheme = Object.prototype.hasOwnProperty.call(expo, 'scheme');
600
+ const nextScheme = hasScheme
601
+ ? Array.isArray(currentScheme)
602
+ ? currentScheme.map((item) => toExpoScheme(readString(item) ?? projectName))
603
+ : toExpoScheme(readString(currentScheme) ?? projectName)
604
+ : undefined;
605
+ let changed = false;
606
+ if (expo.slug !== nextSlug) {
607
+ expo.slug = nextSlug;
608
+ changed = true;
609
+ }
610
+ if (hasScheme && JSON.stringify(currentScheme) !== JSON.stringify(nextScheme)) {
611
+ expo.scheme = nextScheme;
612
+ changed = true;
613
+ }
614
+ if (!changed) {
615
+ return [];
616
+ }
617
+ await writeFile(appJsonPath, `${JSON.stringify(parsed, null, 2)}\n`, 'utf8');
618
+ return [appJsonPath];
619
+ }
620
+ async function findProjectFromCesConfig(cwd, projectName) {
621
+ try {
622
+ const entries = await readdir(cwd, { withFileTypes: true });
623
+ for (const entry of entries) {
624
+ if (!entry.isDirectory()) {
625
+ continue;
626
+ }
627
+ const projectPath = path.join(cwd, entry.name);
628
+ const raw = await readOptionalText(path.join(projectPath, 'cesconfig.jsonc'));
629
+ if (!raw) {
630
+ continue;
631
+ }
632
+ const parsed = parseJsonc(raw);
633
+ if (readString(parsed.projectName) === projectName) {
634
+ return projectPath;
635
+ }
636
+ }
637
+ }
638
+ catch {
639
+ return null;
640
+ }
641
+ return null;
642
+ }
643
+ async function detectPackageManager(projectPath, args) {
644
+ if (args.includes('--pnpm'))
645
+ return 'pnpm';
646
+ if (args.includes('--yarn'))
647
+ return 'yarn';
648
+ if (args.includes('--bun'))
649
+ return 'bun';
650
+ if (args.includes('--npm'))
651
+ return 'npm';
652
+ const packageJson = await readJson(path.join(projectPath, 'package.json'));
653
+ const declared = readString(packageJson.packageManager);
654
+ if (declared?.startsWith('pnpm@'))
655
+ return 'pnpm';
656
+ if (declared?.startsWith('yarn@'))
657
+ return 'yarn';
658
+ if (declared?.startsWith('bun@'))
659
+ return 'bun';
660
+ if (declared?.startsWith('npm@'))
661
+ return 'npm';
662
+ if (await pathExists(path.join(projectPath, 'pnpm-lock.yaml')))
663
+ return 'pnpm';
664
+ if (await pathExists(path.join(projectPath, 'yarn.lock')))
665
+ return 'yarn';
666
+ if (await pathExists(path.join(projectPath, 'bun.lock')) || await pathExists(path.join(projectPath, 'bun.lockb'))) {
667
+ return 'bun';
668
+ }
669
+ return 'npm';
670
+ }
671
+ function shouldRunExpoProjectChecks(parsed, noInstallRequested) {
672
+ return !parsed.mds.skipCreate && !parsed.mds.skipExpoFix && !noInstallRequested;
673
+ }
674
+ function hasNoInstallFlag(args) {
675
+ return args.some((arg) => {
676
+ const normalized = arg.trim().toLowerCase();
677
+ return (normalized === '--no-install' ||
678
+ normalized === '--noinstall' ||
679
+ normalized === '--no-install=true' ||
680
+ normalized === '--install=false');
681
+ });
682
+ }
683
+ export function buildInstallCommand(packageManager) {
684
+ switch (packageManager) {
685
+ case 'pnpm':
686
+ return {
687
+ command: 'pnpm',
688
+ args: ['install', '--config.strict-dep-builds=false'],
689
+ display: 'pnpm install --config.strict-dep-builds=false',
690
+ env: { PNPM_CONFIG_STRICT_DEP_BUILDS: 'false' },
691
+ };
692
+ case 'yarn':
693
+ return {
694
+ command: 'yarn',
695
+ args: ['install'],
696
+ display: 'yarn install',
697
+ };
698
+ case 'bun':
699
+ return {
700
+ command: 'bun',
701
+ args: ['install'],
702
+ display: 'bun install',
703
+ };
704
+ case 'npm':
705
+ return {
706
+ command: 'npm',
707
+ args: ['install'],
708
+ display: 'npm install',
709
+ };
710
+ }
711
+ }
712
+ export function buildExpoInstallFixCommand(packageManager) {
713
+ switch (packageManager) {
714
+ case 'pnpm':
715
+ return {
716
+ command: 'pnpm',
717
+ args: ['exec', 'expo', 'install', '--fix'],
718
+ display: 'pnpm exec expo install --fix',
719
+ env: { PNPM_CONFIG_STRICT_DEP_BUILDS: 'false' },
720
+ };
721
+ case 'yarn':
722
+ return {
723
+ command: 'yarn',
724
+ args: ['expo', 'install', '--fix'],
725
+ display: 'yarn expo install --fix',
726
+ };
727
+ case 'bun':
728
+ return {
729
+ command: 'bunx',
730
+ args: ['expo', 'install', '--fix'],
731
+ display: 'bunx expo install --fix',
732
+ };
733
+ case 'npm':
734
+ return {
735
+ command: 'npx',
736
+ args: ['expo', 'install', '--fix'],
737
+ display: 'npx expo install --fix',
738
+ };
739
+ }
740
+ }
741
+ export function buildExpoLatestSdkCommand(packageManager) {
742
+ switch (packageManager) {
743
+ case 'pnpm':
744
+ return {
745
+ command: 'pnpm',
746
+ args: ['exec', 'expo', 'install', 'expo@latest'],
747
+ display: 'pnpm exec expo install expo@latest',
748
+ env: { PNPM_CONFIG_STRICT_DEP_BUILDS: 'false' },
749
+ };
750
+ case 'yarn':
751
+ return {
752
+ command: 'yarn',
753
+ args: ['expo', 'install', 'expo@latest'],
754
+ display: 'yarn expo install expo@latest',
755
+ };
756
+ case 'bun':
757
+ return {
758
+ command: 'bunx',
759
+ args: ['expo', 'install', 'expo@latest'],
760
+ display: 'bunx expo install expo@latest',
761
+ };
762
+ case 'npm':
763
+ return {
764
+ command: 'npx',
765
+ args: ['expo', 'install', 'expo@latest'],
766
+ display: 'npx expo install expo@latest',
767
+ };
768
+ }
769
+ }
770
+ export async function shouldRunExpoLatestSdkCommand(projectPath) {
771
+ const packageJson = await readJson(path.join(projectPath, 'package.json'));
772
+ return shouldRunExpoLatestSdkCommandFromPackageJson(packageJson);
773
+ }
774
+ export function shouldRunExpoLatestSdkCommandFromPackageJson(packageJson) {
775
+ const dependencies = isRecord(packageJson.dependencies) ? packageJson.dependencies : {};
776
+ const devDependencies = isRecord(packageJson.devDependencies) ? packageJson.devDependencies : {};
777
+ const version = readString(dependencies.expo) ?? readString(devDependencies.expo);
778
+ if (!version || version === 'latest') {
779
+ return !version;
780
+ }
781
+ const major = readSemverMajor(version);
782
+ return major === undefined || major < CURRENT_EXPO_SDK_MAJOR;
783
+ }
784
+ function readSemverMajor(version) {
785
+ const match = version.match(/\d+/u);
786
+ if (!match) {
787
+ return undefined;
788
+ }
789
+ return Number.parseInt(match[0], 10);
790
+ }
791
+ export function buildExpoFontInstallCommand(packageManager) {
792
+ switch (packageManager) {
793
+ case 'pnpm':
794
+ return {
795
+ command: 'pnpm',
796
+ args: ['exec', 'expo', 'install', 'expo-font'],
797
+ display: 'pnpm exec expo install expo-font',
798
+ env: { PNPM_CONFIG_STRICT_DEP_BUILDS: 'false' },
799
+ };
800
+ case 'yarn':
801
+ return {
802
+ command: 'yarn',
803
+ args: ['expo', 'install', 'expo-font'],
804
+ display: 'yarn expo install expo-font',
805
+ };
806
+ case 'bun':
807
+ return {
808
+ command: 'bunx',
809
+ args: ['expo', 'install', 'expo-font'],
810
+ display: 'bunx expo install expo-font',
811
+ };
812
+ case 'npm':
813
+ return {
814
+ command: 'npx',
815
+ args: ['expo', 'install', 'expo-font'],
816
+ display: 'npx expo install expo-font',
817
+ };
818
+ }
819
+ }
820
+ export function buildExpoDoctorCommand(packageManager) {
821
+ switch (packageManager) {
822
+ case 'pnpm':
823
+ return {
824
+ command: 'pnpm',
825
+ args: ['dlx', 'expo-doctor'],
826
+ display: 'pnpm dlx expo-doctor',
827
+ };
828
+ case 'yarn':
829
+ return {
830
+ command: 'yarn',
831
+ args: ['dlx', 'expo-doctor'],
832
+ display: 'yarn dlx expo-doctor',
833
+ };
834
+ case 'bun':
835
+ return {
836
+ command: 'bunx',
837
+ args: ['expo-doctor'],
838
+ display: 'bunx expo-doctor',
839
+ };
840
+ case 'npm':
841
+ return {
842
+ command: 'npx',
843
+ args: ['expo-doctor'],
844
+ display: 'npx expo-doctor',
845
+ };
846
+ }
847
+ }
848
+ export async function shouldInstallExpoFontPeer(projectPath) {
849
+ const packageJson = await readJson(path.join(projectPath, 'package.json'));
850
+ return shouldInstallExpoFontPeerFromPackageJson(packageJson);
851
+ }
852
+ export function shouldInstallExpoFontPeerFromPackageJson(packageJson) {
853
+ const dependencies = isRecord(packageJson.dependencies) ? packageJson.dependencies : {};
854
+ const devDependencies = isRecord(packageJson.devDependencies) ? packageJson.devDependencies : {};
855
+ const hasVectorIcons = typeof dependencies['@expo/vector-icons'] === 'string' || typeof devDependencies['@expo/vector-icons'] === 'string';
856
+ const hasExpoFont = typeof dependencies['expo-font'] === 'string' || typeof devDependencies['expo-font'] === 'string';
857
+ return hasVectorIcons && !hasExpoFont;
858
+ }
859
+ export async function detectEasSetup(projectPath, createExpoStackArgs) {
860
+ if (hasFlag(createExpoStackArgs, '--eas')) {
861
+ return true;
862
+ }
863
+ if (await pathExists(path.join(projectPath, 'eas.json'))) {
864
+ return true;
865
+ }
866
+ const appJson = await readJson(path.join(projectPath, 'app.json'));
867
+ if (hasExpoEasProjectId(appJson)) {
868
+ return true;
869
+ }
870
+ const appConfigJson = await readJson(path.join(projectPath, 'app.config.json'));
871
+ if (hasExpoEasProjectId(appConfigJson)) {
872
+ return true;
873
+ }
874
+ return undefined;
875
+ }
876
+ function hasFlag(args, flag) {
877
+ return args.some((arg) => arg === flag || arg.startsWith(`${flag}=`));
878
+ }
879
+ function hasExpoEasProjectId(config) {
880
+ const expo = isRecord(config.expo) ? config.expo : config;
881
+ const extra = isRecord(expo.extra) ? expo.extra : undefined;
882
+ const eas = extra && isRecord(extra.eas) ? extra.eas : undefined;
883
+ return typeof eas?.projectId === 'string' && eas.projectId.trim().length > 0;
884
+ }
885
+ function buildRunScriptCommand(packageManager, script) {
886
+ switch (packageManager) {
887
+ case 'pnpm':
888
+ return `pnpm ${script}`;
889
+ case 'yarn':
890
+ return `yarn ${script}`;
891
+ case 'bun':
892
+ return `bun run ${script}`;
893
+ case 'npm':
894
+ return `npm run ${script}`;
895
+ }
896
+ }
897
+ function formatDisplayArgs(args) {
898
+ return args.map(quoteDisplayArg).join(' ');
899
+ }
900
+ function quoteDisplayArg(value) {
901
+ if (!value || /[\s"]/u.test(value)) {
902
+ return `"${value.replace(/"/g, '\\"')}"`;
903
+ }
904
+ return value;
905
+ }
906
+ function buildOnboardArgv(projectPath, parsed, easSelected) {
907
+ return {
908
+ project: projectPath,
909
+ yes: parsed.mds.yes,
910
+ force: parsed.mds.force,
911
+ rich: parsed.mds.rich,
912
+ guidelinesTemplate: parsed.mds.guidelinesTemplate,
913
+ guidelinesTemplatePath: parsed.mds.guidelinesTemplatePath,
914
+ easSelected,
915
+ appName: parsed.mds.appName,
916
+ audience: parsed.mds.audience,
917
+ coreFlows: parsed.mds.coreFlows,
918
+ dataNeeds: parsed.mds.dataNeeds,
919
+ dataStart: parsed.mds.dataStart,
920
+ deploymentTarget: parsed.mds.deploymentTarget,
921
+ defaults: parsed.mds.defaults,
922
+ testToMain: parsed.mds.testToMain,
923
+ platforms: parsed.mds.platforms,
924
+ firstPlatform: parsed.mds.firstPlatform,
925
+ platformStrategy: parsed.mds.platformStrategy,
926
+ appDirectory: parsed.mds.appDirectory ?? 'src',
927
+ platformLayouts: parsed.mds.platformLayouts,
928
+ webOutput: parsed.mds.webOutput,
929
+ deployedServer: parsed.mds.deployedServer,
930
+ createExpoComponents: parsed.mds.createExpoComponents,
931
+ latestExpoSdk: parsed.mds.latestExpoSdk,
932
+ expoUi: parsed.mds.expoUi,
933
+ expoNativeTabs: parsed.mds.expoNativeTabs,
934
+ easUses: parsed.mds.easUses,
935
+ };
936
+ }
937
+ function splitList(value) {
938
+ return value
939
+ .split(',')
940
+ .map((item) => item.trim())
941
+ .filter(Boolean);
942
+ }
943
+ async function pathExists(filePath) {
944
+ try {
945
+ await access(filePath);
946
+ return true;
947
+ }
948
+ catch {
949
+ return false;
950
+ }
951
+ }
952
+ async function readOptionalText(filePath) {
953
+ try {
954
+ return await readFile(filePath, 'utf8');
955
+ }
956
+ catch {
957
+ return null;
958
+ }
959
+ }
960
+ async function readJson(filePath) {
961
+ const raw = await readOptionalText(filePath);
962
+ if (!raw) {
963
+ return {};
964
+ }
965
+ try {
966
+ const parsed = JSON.parse(raw);
967
+ return isRecord(parsed) ? parsed : {};
968
+ }
969
+ catch {
970
+ return {};
971
+ }
972
+ }
973
+ function parseJsonc(value) {
974
+ const cleaned = value.replace(/^\s*\/\/.*$/gm, '');
975
+ const parsed = JSON.parse(cleaned);
976
+ return isRecord(parsed) ? parsed : {};
977
+ }
978
+ function readString(value) {
979
+ return typeof value === 'string' ? value : undefined;
980
+ }
981
+ export function toExpoSlug(value) {
982
+ const slug = value
983
+ .trim()
984
+ .toLowerCase()
985
+ .replace(/[^a-z0-9_-]+/g, '-')
986
+ .replace(/^-+|-+$/g, '');
987
+ return slug || 'expo-app';
988
+ }
989
+ export function toExpoScheme(value) {
990
+ const scheme = value
991
+ .trim()
992
+ .toLowerCase()
993
+ .replace(/[^a-z0-9+.-]+/g, '-')
994
+ .replace(/^[^a-z]+/, '')
995
+ .replace(/-+$/g, '');
996
+ return scheme || 'expo-app';
997
+ }
998
+ function isRecord(value) {
999
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
1000
+ }
1001
+ export function isCliEntryPoint(argv = process.argv) {
1002
+ const entry = argv[1];
1003
+ return Boolean(entry && import.meta.url === pathToFileURL(entry).href);
1004
+ }
1005
+ if (isCliEntryPoint()) {
1006
+ main().catch((error) => {
1007
+ const message = error instanceof Error ? error.message : String(error);
1008
+ console.error(message);
1009
+ process.exit(1);
1010
+ });
1011
+ }
1012
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AA0CpE,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAC3C,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAclC,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,aAAa,EAAE,MAAM,2BAA2B,CAAC,aAAa,CAAC,CAAC,CAAC;IACxG,2BAA2B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAC/D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IAEtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IACxG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG;QACzB,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC9C,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK;QAC/E,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE;QACrE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK;QACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;QACpC,eAAe,EAAE,IAAI,CAAC,eAAe;KACtC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,4BAA4B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5H,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3F,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC3D,MAAM,oBAAoB,CAAC,WAAW,EAAE,cAAc,EAAE;YACtD,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;SAChD,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,kBAAkB,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,6BAA6B,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,KAAK,yBAAyB,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,0BAA0B,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,IAAI,MAAM,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,2BAA2B,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,sBAAsB,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAqB,CAAC,cAAc,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,MAAM,GAAG,GAAsB;QAC7B,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,KAAK;QAClB,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,KAAK;KAClB,CAAC;IACF,IAAI,WAA+B,CAAC;IACpC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,aAAa,GAAG,IAAI,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,WAAW,GAAG,GAAG,CAAC;YAClB,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAC7D,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,uBAAuB,EAAE,CAAC;YAC3D,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;YAChC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,qBAAqB,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;YACjE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;YAC1E,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,2BAA2B,EAAE,CAAC;YACxC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC9B,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,iCAAiC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC9B,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC9C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;YACjC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,uBAAuB,EAAE,CAAC;YACpC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;gBAClD,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC/B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YAC3B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACxD,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACpF,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxE,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;YAC3C,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,iCAAiC,EAAE,CAAC;YAC9C,GAAG,CAAC,oBAAoB,GAAG,KAAK,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,uBAAuB,EAAE,CAAC;YACpC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,0BAA0B,EAAE,CAAC;YACvC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC/B,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;YACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,2BAA2B,EAAE,CAAC;YACxC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,WAAW;QACX,mBAAmB;QACnB,aAAa;QACb,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,QAAQ;QACR,oFAAoF;QACpF,EAAE;QACF,WAAW;QACX,0DAA0D;QAC1D,4DAA4D;QAC5D,EAAE;QACF,qBAAqB;QACrB,yEAAyE;QACzE,mGAAmG;QACnG,gFAAgF;QAChF,6EAA6E;QAC7E,yEAAyE;QACzE,EAAE;QACF,OAAO;QACP,0DAA0D;QAC1D,EAAE;QACF,OAAO;QACP,6DAA6D;KAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAkB,EAAE,WAAmB;IAC7E,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC;IACvE,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;IAC/C,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU;QAC/C,CAAC,CAAC,MAAM,CAAC,mBAAmB;QAC5B,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAEvE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,mBAAmB;YAChC,mBAAmB;YACnB,GAAG,EAAE;gBACH,GAAG,MAAM,CAAC,GAAG;gBACb,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,mBAAmB;aACnD;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,mBAAmB;QAChC,mBAAmB;QACnB,GAAG,EAAE;YACH,GAAG,MAAM,CAAC,GAAG;YACb,gBAAgB,EAAE,MAAM,CAAC,SAAS;YAClC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,mBAAmB;SACnD;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,MAAkB;IAC3D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC5C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,OAAO,EAAE,yCAAyC;QAClD,WAAW,EAAE,oBAAoB;QACjC,YAAY,EAAE,oBAAoB;QAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,OAAO,sEAAsE,CAAC;YAChF,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,0EAA0E,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,CAAC;IAC1D,GAAG,CAAC,OAAO,CAAC,mBAAmB,WAAW,GAAG,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,WAAmB,EAAE,mBAA6B,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;IACtG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,iCAAiC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;IAC1C,IAAI,gBAAgB,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAc,EAAE,WAAoB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzF,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;YAC/D,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpD,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,cAAsB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC9E,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3G,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,GAAG;SACf,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,oBAAoB,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,OAAO;QACL,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc,EAAE,WAAmB;IAC5D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAc;IACxD,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAC/D,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,mDAAmD,SAAS,CAAC,IAAI,CAC/D,OAAO,CACR,0HAA0H,CAC5H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,cAA8B,EAC9B,UAAmC,EAAE;IAErC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;IAClG,MAAM,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,6BAA6B,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,iBAAiB,CAAC,WAAW,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,sBAAsB,yBAAyB,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,iBAAiB,CAAC,WAAW,EAAE,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;IACjF,IAAI,MAAM,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,iBAAiB,CAAC,WAAW,EAAE,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,iBAAiB,CAAC,WAAW,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAiB;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;YAC3C,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YACjD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;YAC7D,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,qBAAqB,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,WAAoB;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAChG,MAAM,QAAQ,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC5G,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,YAAY,CAAC;YACpB,OAAO,EAAE,QAAQ,YAAY,EAAE;YAC/B,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9F,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAChF,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,YAAY,CAAC;YACpB,OAAO,EAAE,QAAQ,YAAY,EAAE;YAC/B,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC;KACvE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,SAAS;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,mBAAmB;KAC7B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAAC,gBAAwB;IACrE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0CAA0C,gBAAgB,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,iBAAiB,CAAC,gBAAgB,EAAE;YACxC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YACtB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,iBAAiB,CAAC,gBAAgB,EAAE;YACxC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,SAAS,CAAC;YACjB,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,iBAAiB,CAAC,gBAAgB,EAAE;QACxC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,MAAM,iBAAiB,CAAC,gBAAgB,EAAE;QACxC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;QACjF,OAAO,EAAE,gEAAgE;KAC1E,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAe;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;YAC1C,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACnC,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,GAAW,EAAE,WAAmB;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACvE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,WAAmB,EAAE,WAAmB;IACzF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QACzC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5B,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;YAC5E,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,CAAC,WAAW,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,WAAmB;IACtE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAc;IACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACxD,IAAI,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9E,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACzE,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAClH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAkB,EAAE,kBAA2B;IACjF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,kBAAkB,CAAC;AAClF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CACL,UAAU,KAAK,cAAc;YAC7B,UAAU,KAAK,aAAa;YAC5B,UAAU,KAAK,mBAAmB;YAClC,UAAU,KAAK,iBAAiB,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,cAA8B;IAChE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,SAAS,EAAE,kCAAkC,CAAC;gBACrD,OAAO,EAAE,+CAA+C;gBACxD,GAAG,EAAE,EAAE,6BAA6B,EAAE,OAAO,EAAE;aAChD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,cAAc;aACxB,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,aAAa;aACvB,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,aAAa;aACvB,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,cAA8B;IACvE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBAC1C,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,EAAE,6BAA6B,EAAE,OAAO,EAAE;aAChD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBAClC,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBAClC,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBAClC,OAAO,EAAE,wBAAwB;aAClC,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,cAA8B;IACtE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;gBAChD,OAAO,EAAE,oCAAoC;gBAC7C,GAAG,EAAE,EAAE,6BAA6B,EAAE,OAAO,EAAE;aAChD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;gBACxC,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;gBACxC,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;gBACxC,OAAO,EAAE,8BAA8B;aACxC,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,WAAmB;IACrE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,OAAO,4CAA4C,CAAC,WAAW,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,4CAA4C,CAAC,WAAoC;IAC/F,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAElF,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,sBAAsB,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,cAA8B;IACxE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;gBAC9C,OAAO,EAAE,kCAAkC;gBAC3C,GAAG,EAAE,EAAE,6BAA6B,EAAE,OAAO,EAAE;aAChD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;gBACtC,OAAO,EAAE,6BAA6B;aACvC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;gBACtC,OAAO,EAAE,6BAA6B;aACvC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;gBACtC,OAAO,EAAE,4BAA4B;aACtC,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,cAA8B;IACnE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;gBAC5B,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;gBAC5B,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrB,OAAO,EAAE,kBAAkB;aAC5B,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrB,OAAO,EAAE,iBAAiB;aAC3B,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,WAAmB;IACjE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,OAAO,wCAAwC,CAAC,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,WAAoC;IAC3F,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,cAAc,GAClB,OAAO,YAAY,CAAC,oBAAoB,CAAC,KAAK,QAAQ,IAAI,OAAO,eAAe,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC;IACtH,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC;IAEtH,OAAO,cAAc,IAAI,CAAC,WAAW,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,mBAA6B;IACrF,IAAI,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAChF,IAAI,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,IAAY;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,OAAO,OAAO,GAAG,EAAE,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAAC,cAA8B,EAAE,MAAc;IAC3E,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,WAAW,MAAM,EAAE,CAAC;QAC7B,KAAK,KAAK;YACR,OAAO,WAAW,MAAM,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB,EAAE,MAAkB,EAAE,WAAqB;IACtF,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;QACnB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK;QACvB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;QACrB,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB;QACjD,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB;QACzD,WAAW;QACX,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ;QAC7B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC/B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC/B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC/B,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB;QAC7C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ;QAC7B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;QACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC/B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa;QACvC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB;QAC7C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK;QAC9C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe;QAC3C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC/B,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc;QACzC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB;QACrD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa;QACvC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;QACzB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc;QACzC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,IAAI,GAAG,KAAK;SACf,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3B,OAAO,IAAI,IAAI,UAAU,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,KAAK;SACjB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvB,OAAO,MAAM,IAAI,UAAU,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,IAAI,eAAe,EAAE,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "create-expo-super-stack",
3
+ "version": "0.1.0",
4
+ "description": "Opinionated MDS wrapper around create-expo-stack with rich Expo onboarding",
5
+ "type": "module",
6
+ "bin": {
7
+ "create-expo-super-stack": "./dist/cli.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/cli.js",
15
+ "types": "./dist/cli.d.ts"
16
+ }
17
+ },
18
+ "main": "./dist/cli.js",
19
+ "types": "./dist/cli.d.ts",
20
+ "scripts": {
21
+ "build": "pnpm --filter @mr.dj2u/cli build && tsc",
22
+ "type-check": "pnpm --filter @mr.dj2u/cli build && tsc --noEmit",
23
+ "lint": "eslint src",
24
+ "lint:fix": "eslint src --fix",
25
+ "test": "vitest run --passWithNoTests",
26
+ "dev": "tsc --watch",
27
+ "clean": "node -e \"const fs=require('node:fs'); for (const p of ['dist','tsconfig.tsbuildinfo']) fs.rmSync(p,{recursive:true,force:true});\""
28
+ },
29
+ "dependencies": {
30
+ "@clack/prompts": "^0.11.0",
31
+ "@mr.dj2u/cli": "workspace:*",
32
+ "create-expo-stack": "^2.21.3"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^20.10.0",
36
+ "typescript": "^5.9.0"
37
+ },
38
+ "keywords": [
39
+ "expo",
40
+ "create-expo-stack",
41
+ "uniwind",
42
+ "mds",
43
+ "react-native"
44
+ ],
45
+ "author": "DJ",
46
+ "license": "MIT"
47
+ }