@unbrained/pm-cli 2026.5.29 → 2026.5.30
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/CHANGELOG.md +29 -12
- package/dist/cli/bootstrap-args.d.ts +1 -1
- package/dist/cli/bootstrap-args.js +59 -9
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commands/activity.js +4 -4
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/calendar.js +4 -4
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/close.js +4 -4
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +4 -4
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/create.js +18 -5
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/deps.js +4 -4
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.d.ts +1 -0
- package/dist/cli/commands/extension/install-sources.js +20 -2
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension.js +26 -5
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/get.js +6 -3
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/list.js +25 -6
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/search.js +3 -3
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.js +4 -4
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/test-all.js +4 -4
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +39 -11
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +3 -3
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-setup.js +3 -3
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/chunk-PB2YU2E3.js +164 -0
- package/dist/cli-bundle/chunks/chunk-PB2YU2E3.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-RJONRNXN.js +682 -0
- package/dist/cli-bundle/chunks/chunk-RJONRNXN.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-SW5BMMCU.js +13864 -0
- package/dist/cli-bundle/chunks/chunk-SW5BMMCU.js.map +7 -0
- package/dist/cli-bundle/chunks/commands-XJ4TJ5UN.js +24225 -0
- package/dist/cli-bundle/chunks/commands-XJ4TJ5UN.js.map +7 -0
- package/dist/cli-bundle/chunks/register-list-query-EIVQ5FMR.js +223 -0
- package/dist/cli-bundle/chunks/register-list-query-EIVQ5FMR.js.map +7 -0
- package/dist/cli-bundle/chunks/register-mutation-RSZNPSGI.js +702 -0
- package/dist/cli-bundle/chunks/register-mutation-RSZNPSGI.js.map +7 -0
- package/dist/cli-bundle/chunks/register-operations-APUSYDMR.js +355 -0
- package/dist/cli-bundle/chunks/register-operations-APUSYDMR.js.map +7 -0
- package/dist/cli-bundle/chunks/register-setup-OZOKSMPJ.js +237 -0
- package/dist/cli-bundle/chunks/register-setup-OZOKSMPJ.js.map +7 -0
- package/dist/cli-bundle/main.js +6896 -0
- package/dist/cli-bundle/main.js.map +7 -0
- package/dist/cli.js +1 -1
- package/dist/core/config/nested-settings.d.ts +2 -0
- package/dist/core/config/nested-settings.js +17 -2
- package/dist/core/config/nested-settings.js.map +1 -1
- package/dist/core/item/type-synonyms.d.ts +20 -0
- package/dist/core/item/type-synonyms.js +42 -0
- package/dist/core/item/type-synonyms.js.map +1 -0
- package/dist/core/search/cache.js +46 -4
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/semantic-defaults.js +73 -32
- package/dist/core/search/semantic-defaults.js.map +1 -1
- package/dist/core/sentry/helpers.d.ts +1 -1
- package/dist/core/sentry/helpers.js +4 -4
- package/dist/core/sentry/helpers.js.map +1 -1
- package/dist/core/shared/constants.js +3 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/html-entity-decode.d.ts +2 -1
- package/dist/core/shared/html-entity-decode.js +14 -9
- package/dist/core/shared/html-entity-decode.js.map +1 -1
- package/dist/core/shared/time.js +52 -2
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/front-matter-cache.d.ts +24 -0
- package/dist/core/store/front-matter-cache.js +119 -8
- package/dist/core/store/front-matter-cache.js.map +1 -1
- package/dist/core/store/item-store.d.ts +7 -0
- package/dist/core/store/item-store.js +13 -3
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +3 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.js +19 -3
- package/dist/core/store/settings.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts.js +5 -5
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/docs/CONFIGURATION.md +11 -0
- package/package.json +7 -4
- package/packages/pm-calendar/extensions/calendar/index.js +27 -2
- package/packages/pm-calendar/extensions/calendar/index.ts +28 -2
- package/scripts/bundle-cli.mjs +39 -0
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["cli/main.ts"],"sourceRoot":"/","sourcesContent":["#!/usr/bin/env node\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Command } from \"commander\";\nimport {\n activateExtensions,\n clearActiveExtensionHooks,\n createEmptyExtensionRegistrationRegistry,\n getActiveCommandResult,\n getActiveExtensionRegistrations,\n loadExtensions,\n runActiveCommandHandler,\n runActiveParserOverride,\n runActivePreflightOverride,\n runAfterCommandHooks,\n runBeforeCommandHooks,\n setActiveCommandResult,\n setActiveCommandContext,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionServiceRegistry,\n type PreflightRuntimeDecision,\n type RegisteredExtensionSchemaMigrationDefinition,\n type ExtensionRendererRegistry,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport { resolvePmPackageRootFromModule } from \"../core/packages/root.js\";\nimport {\n resolveItemTypeRegistry,\n} from \"../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n type RuntimeFieldCommand,\n} from \"../core/schema/runtime-schema.js\";\nimport { EXIT_CODE, resolveTelemetryErrorCategory, type TelemetryErrorCategory } from \"../core/shared/constants.js\";\nimport { PmCliError, type PmCliErrorContext, type PmCliErrorRecoveryPayload } from \"../core/shared/errors.js\";\nimport { asRecordOrNull, toNonEmptyStringOrUndefined } from \"../core/shared/primitives.js\";\nimport { printError, printResult, writeStdout } from \"../core/output/output.js\";\nimport { maybeRunFirstUseTelemetryPrompt } from \"../core/telemetry/consent.js\";\nimport {\n emitTelemetryErrorEvent,\n finishTelemetryCommand,\n startTelemetryCommand,\n type ActiveTelemetryCommand,\n type TelemetryCommandOutcome,\n} from \"../core/telemetry/runtime.js\";\nimport {\n deriveTelemetryCommandResolution,\n type TelemetryCommandResolution,\n type TelemetryResolutionStage,\n} from \"../core/telemetry/observability.js\";\nimport {\n sentryCaptureCliError,\n sentryFinishCommandSpan,\n sentryFlush,\n sentryLogCliUsageError,\n sentrySetCommandContext,\n sentryStartCommandSpan,\n} from \"../core/sentry/helpers.js\";\nimport { ensureSentryInit } from \"../core/sentry/instrument.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport type { PmSettings } from \"../types/index.js\";\nimport {\n coerceLooseCommandOptionsWithFlagDefinitions,\n parseLooseCommandOptions,\n validateLooseCommandOptionsWithFlagDefinitions,\n} from \"./extension-command-options.js\";\nimport { attachRichHelpText } from \"./help-content.js\";\nimport {\n extractProvidedOptionFlags,\n normalizeLongOptionFlag,\n renderPmCommand,\n} from \"./argv-utils.js\";\nimport {\n classifyCommanderError,\n classifyPmCliError,\n classifyUnknownError,\n formatPmCliErrorForDisplay,\n formatPmCliErrorForJson,\n formatUnknownErrorForJson,\n} from \"./error-guidance.js\";\nimport {\n applyDefaultOutputFormat,\n clearResolvedGlobalOptions,\n collect,\n formatHookWarnings,\n getCommandPath,\n getGlobalOptions,\n invalidateSearchCachesForMutation,\n setResolvedGlobalOptions,\n} from \"./registration-helpers.js\";\nimport type { registerSetupCommands as RegisterSetupCommandsFn } from \"./register-setup.js\";\nimport type { registerListQueryCommands as RegisterListQueryCommandsFn } from \"./register-list-query.js\";\nimport type { registerMutationCommands as RegisterMutationCommandsFn } from \"./register-mutation.js\";\nimport type { registerOperationCommands as RegisterOperationCommandsFn } from \"./register-operations.js\";\nimport { createLazyModule } from \"../core/shared/lazy-module.js\";\nimport {\n type ExtensionCommandHelpDescriptor,\n normalizeExtensionCommandPath,\n collectDynamicExtensionFlagHelpByCommand,\n collectExtensionCommandHelpDescriptors,\n applyDynamicExtensionArguments,\n buildDynamicExtensionCommandMetadataHelp,\n findCommandByPath,\n ensureCommandPath,\n} from \"./extension-command-help.js\";\nimport {\n parseBootstrapGlobalOptions,\n applyBootstrapPagerPolicy,\n parseBootstrapHelpRequest,\n parseBootstrapCommandName,\n normalizeBootstrapInvocation,\n} from \"./bootstrap-args.js\";\nimport {\n type MandatoryMigrationBlocker,\n collectMandatoryMigrationBlockers,\n enforceMandatoryMigrationWriteGate,\n enforceItemFormatWriteGateAndPreflightMigration,\n resolveMigrationId,\n resolveNormalizedMigrationStatus,\n} from \"./migration-gates.js\";\nimport {\n isKnownHelpCommandPath,\n formatCommanderUsageMessage,\n formatCommanderUsageJson,\n resolveCommanderUsageContext,\n} from \"./commander-usage.js\";\nimport {\n maybeRenderBootstrapJsonHelp,\n attachCreateUpdatePolicyHelpText,\n} from \"./help-json-payload.js\";\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n return resolvePmPackageRootFromModule(import.meta.url, [\"../..\"]);\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\n\ninterface ActiveExtensionHookContext {\n hooks: ExtensionHookRegistry;\n commandName: string;\n commandArgs: string[];\n commandOptions: Record<string, unknown>;\n globalOptions: GlobalOptions;\n pmRoot: string;\n profileEnabled: boolean;\n migrationBlockers: MandatoryMigrationBlocker[];\n}\n\nlet activeExtensionHookContext: ActiveExtensionHookContext | null = null;\nlet activeTelemetryCommandContext: ActiveTelemetryCommand | null = null;\n\nconst TELEMETRY_COMMAND_RESOLUTION_SET = new Set<TelemetryCommandResolution>([\n \"success\",\n \"nonexistent_command\",\n \"invalid_option\",\n \"missing_required_option\",\n \"missing_required_argument\",\n \"invalid_usage\",\n \"validation_failed\",\n \"health_findings\",\n \"validation_findings\",\n \"conflict\",\n \"runtime_failed\",\n \"unknown_failed\",\n]);\n\nconst TELEMETRY_RESOLUTION_STAGE_SET = new Set<TelemetryResolutionStage>([\"parse\", \"preflight\", \"execute\", \"unknown\"]);\nconst TELEMETRY_ERROR_CATEGORY_SET = new Set<TelemetryErrorCategory>([\"usage\", \"validation\", \"conflict\", \"runtime\", \"unknown\"]);\n\ninterface RuntimeExtensionSnapshot {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n settings: PmSettings;\n commandHandlers: string[];\n commandFlagHelp: Map<string, string>;\n commandDescriptors: Map<string, ExtensionCommandHelpDescriptor>;\n loadWarnings: string[];\n activationWarnings: string[];\n loadedCount: number;\n loadFailedCount: number;\n activationFailedCount: number;\n}\n\nlet runtimeExtensionSnapshotCache: { key: string; snapshot: RuntimeExtensionSnapshot | null } | null = null;\nlet activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n\ntype SetupRegistrationModule = {\n registerSetupCommands: typeof RegisterSetupCommandsFn;\n};\ntype ListQueryRegistrationModule = {\n registerListQueryCommands: typeof RegisterListQueryCommandsFn;\n};\ntype MutationRegistrationModule = {\n registerMutationCommands: typeof RegisterMutationCommandsFn;\n};\ntype OperationRegistrationModule = {\n registerOperationCommands: typeof RegisterOperationCommandsFn;\n};\n\nconst loadSetupRegistrationModule = createLazyModule<SetupRegistrationModule>(() => import(\"./register-setup.js\"));\nconst loadListQueryRegistrationModule = createLazyModule<ListQueryRegistrationModule>(() => import(\"./register-list-query.js\"));\nconst loadMutationRegistrationModule = createLazyModule<MutationRegistrationModule>(() => import(\"./register-mutation.js\"));\nconst loadOperationRegistrationModule = createLazyModule<OperationRegistrationModule>(() => import(\"./register-operations.js\"));\n\nfunction describeUnknownError(error: unknown): string {\n if (error instanceof PmCliError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return \"Unknown failure\";\n}\n\nfunction readThrownExitCode(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null || !(\"exitCode\" in error)) {\n return undefined;\n }\n const exitCode = (error as { exitCode?: unknown }).exitCode;\n return typeof exitCode === \"number\" && Number.isFinite(exitCode) ? exitCode : undefined;\n}\n\nfunction normalizeThrownExitCode(exitCode: number): number {\n const normalized = Math.trunc(exitCode);\n return normalized > EXIT_CODE.SUCCESS ? normalized : EXIT_CODE.GENERIC_FAILURE;\n}\n\nfunction isCommanderError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n typeof (error as { code?: unknown }).code === \"string\" &&\n (error as { code: string }).code.startsWith(\"commander.\")\n );\n}\n\nfunction wrapThrownErrorForSentry(error: unknown, message: string): Error {\n if (error instanceof Error) {\n return error;\n }\n const wrapped = new Error(message) as Error & { exitCode?: number };\n const exitCode = readThrownExitCode(error);\n if (exitCode !== undefined) {\n wrapped.exitCode = normalizeThrownExitCode(exitCode);\n }\n return wrapped;\n}\n\nfunction renderAttemptedCommand(argv: string[]): string {\n return renderPmCommand(argv);\n}\n\nfunction inferMissingFieldsFromErrorMessage(message: string): string[] | undefined {\n const matches = message.match(/--[a-zA-Z0-9][a-zA-Z0-9_-]*/g);\n if (!matches || matches.length === 0) {\n return undefined;\n }\n const normalized = [...new Set(matches.map((entry) => normalizeLongOptionFlag(entry) ?? entry))];\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction buildPmCliRecoveryContext(\n context: PmCliErrorContext | undefined,\n invocationArgv: string[],\n rawMessage: string,\n): PmCliErrorContext {\n const attemptedCommand = renderAttemptedCommand(invocationArgv);\n const providedFields = extractProvidedOptionFlags(invocationArgv);\n const providedSet = new Set(providedFields.map((flag) => normalizeLongOptionFlag(flag) ?? flag));\n const existingRecovery = context?.recovery;\n const rawInferred = existingRecovery?.suggested_retry ? undefined : inferMissingFieldsFromErrorMessage(rawMessage);\n const trulyMissing = rawInferred?.filter((flag) => !providedSet.has(normalizeLongOptionFlag(flag) ?? flag));\n const inferredMissing = trulyMissing && trulyMissing.length > 0 ? trulyMissing : undefined;\n let suggestedRetry = existingRecovery?.suggested_retry;\n if (!suggestedRetry && inferredMissing && inferredMissing.length > 0) {\n const missingFlag = inferredMissing[0];\n const normalizedMissing = normalizeLongOptionFlag(missingFlag);\n if (normalizedMissing) {\n suggestedRetry = renderAttemptedCommand([...invocationArgv, normalizedMissing, \"<value>\"]);\n }\n }\n if (!suggestedRetry) {\n suggestedRetry = attemptedCommand;\n }\n if (suggestedRetry === attemptedCommand) {\n suggestedRetry = undefined;\n }\n const recovery: PmCliErrorRecoveryPayload = {\n attempted_command: existingRecovery?.attempted_command ?? attemptedCommand,\n normalized_args: existingRecovery?.normalized_args ?? [...invocationArgv],\n provided_fields: existingRecovery?.provided_fields ?? (providedFields.length > 0 ? providedFields : undefined),\n missing: existingRecovery?.missing ?? inferredMissing,\n ...(suggestedRetry ? { suggested_retry: suggestedRetry } : {}),\n };\n return {\n ...(context ?? {}),\n recovery,\n };\n}\n\nfunction readRecordString(record: Record<string, unknown> | null, ...keys: string[]): string | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"string\") {\n const normalized = candidate.trim();\n if (normalized.length > 0) {\n return normalized;\n }\n }\n }\n return undefined;\n}\n\nfunction readRecordBoolean(record: Record<string, unknown> | null, ...keys: string[]): boolean | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"boolean\") {\n return candidate;\n }\n }\n return undefined;\n}\n\nfunction readRecordNumber(record: Record<string, unknown> | null, ...keys: string[]): number | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"number\" && Number.isFinite(candidate)) {\n return Math.max(0, Math.trunc(candidate));\n }\n }\n return undefined;\n}\n\nfunction normalizeTelemetryCommandResolution(\n value: string | undefined,\n): TelemetryCommandResolution | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_COMMAND_RESOLUTION_SET.has(normalized as TelemetryCommandResolution)) {\n return undefined;\n }\n return normalized as TelemetryCommandResolution;\n}\n\nfunction normalizeTelemetryResolutionStage(value: string | undefined): TelemetryResolutionStage | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_RESOLUTION_STAGE_SET.has(normalized as TelemetryResolutionStage)) {\n return undefined;\n }\n return normalized as TelemetryResolutionStage;\n}\n\nfunction normalizeTelemetryErrorCategory(value: string | undefined): TelemetryErrorCategory | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_ERROR_CATEGORY_SET.has(normalized as TelemetryErrorCategory)) {\n return undefined;\n }\n return normalized as TelemetryErrorCategory;\n}\n\nfunction inferPostActionFailureMessage(result: Record<string, unknown> | null): string | undefined {\n const explicit = readRecordString(result, \"error\", \"message\");\n if (explicit) {\n return explicit;\n }\n\n const warnings = result?.warnings;\n if (Array.isArray(warnings)) {\n const firstWarning = warnings.find((value) => typeof value === \"string\" && value.trim().length > 0);\n if (typeof firstWarning === \"string\") {\n return firstWarning.trim();\n }\n }\n\n const skippedTriggered = readRecordBoolean(result, \"fail_on_skipped_triggered\", \"failOnSkippedTriggered\");\n if (skippedTriggered) {\n return \"linked_test_fail_on_skipped_triggered\";\n }\n\n const failedCount = readRecordNumber(result, \"failed\");\n if (typeof failedCount === \"number\" && failedCount > 0) {\n return `failed_runs:${failedCount}`;\n }\n\n const runResults = result?.run_results;\n if (Array.isArray(runResults)) {\n const failedRuns = runResults.filter((entry) => {\n const row = asRecordOrNull(entry);\n return row?.status === \"failed\";\n }).length;\n if (failedRuns > 0) {\n return `failed_runs:${failedRuns}`;\n }\n }\n\n return undefined;\n}\n\nfunction inferPostActionErrorCode(ok: boolean, exitCode: number): string | undefined {\n if (ok) {\n return undefined;\n }\n if (exitCode === EXIT_CODE.USAGE) {\n return \"invalid_command_usage\";\n }\n if (exitCode === EXIT_CODE.NOT_FOUND) {\n return \"item_not_found\";\n }\n if (exitCode === EXIT_CODE.CONFLICT) {\n return \"lock_conflict\";\n }\n if (exitCode === EXIT_CODE.DEPENDENCY_FAILED) {\n return \"dependency_failed\";\n }\n return \"command_failed\";\n}\n\nfunction buildPostActionTelemetryOutcome(): TelemetryCommandOutcome {\n const result = asRecordOrNull(getActiveCommandResult());\n const processExitCode =\n typeof process.exitCode === \"number\" && Number.isFinite(process.exitCode)\n ? Math.max(0, Math.trunc(process.exitCode))\n : undefined;\n const resultExitCode = readRecordNumber(result, \"exit_code\", \"exitCode\");\n const exitCode = processExitCode ?? resultExitCode ?? EXIT_CODE.SUCCESS;\n const ok = exitCode === EXIT_CODE.SUCCESS;\n const errorCode = readRecordString(result, \"error_code\", \"errorCode\") ?? inferPostActionErrorCode(ok, exitCode);\n const errorCategory =\n normalizeTelemetryErrorCategory(readRecordString(result, \"error_category\", \"errorCategory\")) ??\n (!ok ? resolveTelemetryErrorCategory(errorCode) : undefined);\n const errorMessage = !ok\n ? inferPostActionFailureMessage(result) ?? `command_exit_${exitCode}`\n : undefined;\n const commandResolution =\n normalizeTelemetryCommandResolution(readRecordString(result, \"command_resolution\", \"commandResolution\")) ??\n deriveTelemetryCommandResolution({\n ok,\n errorCode,\n errorCategory,\n });\n const resolutionStage =\n normalizeTelemetryResolutionStage(readRecordString(result, \"resolution_stage\", \"resolutionStage\")) ?? \"execute\";\n return {\n ok,\n error: errorMessage,\n exit_code: exitCode,\n error_code: errorCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: resolutionStage,\n };\n}\n\n\nasync function runAndClearAfterCommandHooks(outcome: TelemetryCommandOutcome): Promise<void> {\n const telemetryRuntime = activeTelemetryCommandContext;\n activeTelemetryCommandContext = null;\n await finishTelemetryCommand(telemetryRuntime, {\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n exit_code: outcome.exit_code,\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n\n const runtime = activeExtensionHookContext;\n activeExtensionHookContext = null;\n if (!runtime) {\n clearActiveExtensionHooks();\n return;\n }\n\n const hookWarnings = await runAfterCommandHooks(runtime.hooks, {\n command: runtime.commandName,\n args: runtime.commandArgs,\n options: { ...runtime.commandOptions },\n global: { ...runtime.globalOptions },\n pm_root: runtime.pmRoot,\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n });\n clearActiveExtensionHooks();\n if (runtime.profileEnabled && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n}\n\nasync function ensureSentryForErrorReporting(): Promise<void> {\n await ensureSentryInit();\n}\n\nfunction extractCommandScopedOptions(\n command: Command,\n commandArgs: string[],\n extensionFlagDefinitions: Array<Record<string, unknown>> = [],\n): Record<string, unknown> {\n const allOptions = command.optsWithGlobals() as Record<string, unknown>;\n const scoped: Record<string, unknown> = { ...allOptions };\n delete scoped.json;\n delete scoped.quiet;\n delete scoped.path;\n delete scoped.noExtensions;\n delete scoped.extensions;\n delete scoped.profile;\n delete scoped.pager;\n // --no-changed-fields is a global output control (commander exposes it as `changedFields`),\n // not a per-command mutation field; strip it so it never counts as an update input.\n delete scoped.changedFields;\n\n const looseOptions = parseLooseCommandOptions(commandArgs);\n if (extensionFlagDefinitions.length > 0) {\n validateLooseCommandOptionsWithFlagDefinitions(looseOptions, extensionFlagDefinitions, getCommandPath(command));\n }\n for (const [key, value] of Object.entries(looseOptions)) {\n if (scoped[key] === undefined) {\n scoped[key] = value;\n }\n }\n if (extensionFlagDefinitions.length > 0) {\n return coerceLooseCommandOptionsWithFlagDefinitions(scoped, extensionFlagDefinitions);\n }\n return scoped;\n}\n\nfunction collectExtensionFlagDefinitionsForCommand(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n): Array<Record<string, unknown>> {\n const normalizedCommandPath = normalizeExtensionCommandPath(commandPath);\n if (normalizedCommandPath.length === 0) {\n return [];\n }\n return registrations.flags\n .filter((entry) => normalizeExtensionCommandPath(entry.target_command) === normalizedCommandPath)\n .flatMap((entry) => entry.flags);\n}\n\nfunction collectExtensionFlagDefinitionsForInvocation(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n commandArgs: string[],\n): Array<Record<string, unknown>> {\n const exact = collectExtensionFlagDefinitionsForCommand(registrations, commandPath);\n const pathParts = [commandPath];\n let nestedMatch: Array<Record<string, unknown>> = [];\n for (const arg of commandArgs) {\n if (arg.startsWith(\"-\")) {\n break;\n }\n pathParts.push(arg);\n const nested = collectExtensionFlagDefinitionsForCommand(registrations, pathParts.join(\" \"));\n if (nested.length > 0) {\n nestedMatch = nested;\n }\n }\n return nestedMatch.length > 0 ? nestedMatch : exact;\n}\n\nconst RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH: Readonly<Record<string, RuntimeFieldCommand>> = {\n create: \"create\",\n update: \"update\",\n \"update-many\": \"update_many\",\n list: \"list\",\n \"list-all\": \"list\",\n \"list-draft\": \"list\",\n \"list-open\": \"list\",\n \"list-in-progress\": \"list\",\n \"list-blocked\": \"list\",\n \"list-closed\": \"list\",\n \"list-canceled\": \"list\",\n search: \"search\",\n calendar: \"calendar\",\n context: \"context\",\n \"templates save\": \"create\",\n};\n\nconst runtimeFieldLooseFlagDefinitionCache = new Map<string, Array<Record<string, unknown>>>();\n\nfunction toLooseFieldDefinitionType(fieldType: string): \"string\" | \"number\" | \"boolean\" {\n if (fieldType === \"number\") {\n return \"number\";\n }\n if (fieldType === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction commandHasLongOption(command: Command, longFlag: string): boolean {\n return command.options.some((option) => option.long === longFlag);\n}\n\nfunction commandHasShortOption(command: Command, shortFlag: string): boolean {\n return command.options.some((option) => option.short === shortFlag);\n}\n\nfunction addRuntimeFieldOption(command: Command, flagToken: string, description: string, repeatable: boolean): void {\n const normalizedToken = flagToken.trim();\n if (!normalizedToken) {\n return;\n }\n const helpText = description.length > 0 ? description : `Runtime schema field (${flagToken})`;\n if (normalizedToken.startsWith(\"-\") && !normalizedToken.startsWith(\"--\")) {\n if (commandHasShortOption(command, normalizedToken)) {\n return;\n }\n if (repeatable) {\n command.option(`${normalizedToken} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${normalizedToken} <value>`, helpText);\n return;\n }\n const longFlag = normalizedToken.startsWith(\"--\") ? normalizedToken : `--${normalizedToken}`;\n if (commandHasLongOption(command, longFlag)) {\n return;\n }\n if (repeatable) {\n command.option(`${longFlag} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${longFlag} <value>`, helpText);\n}\n\nasync function collectRuntimeFieldLooseFlagDefinitionsForCommand(\n commandPath: string,\n pmRoot: string,\n): Promise<Array<Record<string, unknown>>> {\n const runtimeCommand = RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH[commandPath];\n if (!runtimeCommand) {\n return [];\n }\n const cacheKey = `${pmRoot}:${runtimeCommand}`;\n const cached = runtimeFieldLooseFlagDefinitionCache.get(cacheKey);\n if (cached) {\n return cached;\n }\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, []);\n return [];\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const definitions = (fieldRegistry.command_to_fields.get(runtimeCommand) ?? []).flatMap((field) => {\n const flagTokens = [field.cli_flag, ...field.cli_aliases];\n return flagTokens.map((token) => ({\n long: `--${token}`,\n type: toLooseFieldDefinitionType(field.type),\n value_type: toLooseFieldDefinitionType(field.type),\n }));\n });\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, definitions);\n return definitions;\n}\n\nasync function registerRuntimeSchemaFieldFlags(rootProgram: Command, invocationArgv: string[]): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(invocationArgv);\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return;\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const mappings: Array<{ path: string; command: RuntimeFieldCommand }> = [\n { path: \"create\", command: \"create\" },\n { path: \"update\", command: \"update\" },\n { path: \"update-many\", command: \"update_many\" },\n { path: \"list\", command: \"list\" },\n { path: \"list-all\", command: \"list\" },\n { path: \"list-draft\", command: \"list\" },\n { path: \"list-open\", command: \"list\" },\n { path: \"list-in-progress\", command: \"list\" },\n { path: \"list-blocked\", command: \"list\" },\n { path: \"list-closed\", command: \"list\" },\n { path: \"list-canceled\", command: \"list\" },\n { path: \"search\", command: \"search\" },\n { path: \"calendar\", command: \"calendar\" },\n { path: \"context\", command: \"context\" },\n { path: \"templates save\", command: \"create\" },\n ];\n for (const mapping of mappings) {\n const command = findCommandByPath(rootProgram, mapping.path.split(\" \"));\n if (!command) {\n continue;\n }\n for (const field of fieldRegistry.command_to_fields.get(mapping.command) ?? []) {\n const description = field.description ?? \"\";\n addRuntimeFieldOption(command, field.cli_flag, description, field.repeatable);\n for (const alias of field.cli_aliases) {\n addRuntimeFieldOption(command, alias, `Alias for --${field.cli_flag}`, field.repeatable);\n }\n }\n }\n}\n\nfunction defaultPreflightDecision(): PreflightRuntimeDecision {\n return {\n enforce_item_format_gate: true,\n run_preflight_item_format_sync: true,\n run_extension_migrations: true,\n enforce_mandatory_migration_gate: true,\n };\n}\n\nfunction buildRuntimeExtensionSnapshotCacheKey(pmRoot: string): string {\n return `pm-root:${pmRoot}`;\n}\n\nfunction emitExtensionProfile(globalOptions: GlobalOptions, snapshot: RuntimeExtensionSnapshot): void {\n if (!globalOptions.profile) {\n return;\n }\n printError(\n `profile:extensions loaded=${snapshot.loadedCount} failed=${snapshot.loadFailedCount} warnings=${snapshot.loadWarnings.length} activation_failed=${snapshot.activationFailedCount} hook_counts=before:${snapshot.hooks.beforeCommand.length}|after:${snapshot.hooks.afterCommand.length}|write:${snapshot.hooks.onWrite.length}|read:${snapshot.hooks.onRead.length}|index:${snapshot.hooks.onIndex.length} command_overrides=${snapshot.commands.overrides.length} command_handlers=${snapshot.commands.handlers.length} parser_overrides=${snapshot.parsers.overrides.length} preflight_overrides=${snapshot.preflight.overrides.length} service_overrides=${snapshot.services.overrides.length} renderer_overrides=${snapshot.renderers.overrides.length}`,\n );\n if (snapshot.activationWarnings.length > 0) {\n printError(`profile:extensions activation_warnings=${formatHookWarnings(snapshot.activationWarnings)}`);\n }\n}\n\nasync function loadRuntimeExtensionSnapshot(pmRoot: string): Promise<RuntimeExtensionSnapshot | null> {\n const cacheKey = buildRuntimeExtensionSnapshotCacheKey(pmRoot);\n if (runtimeExtensionSnapshotCache?.key === cacheKey) {\n return runtimeExtensionSnapshotCache.snapshot;\n }\n\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const commandHandlers = [...new Set(activationResult.commands.handlers.map((entry) => normalizeExtensionCommandPath(entry.command)))]\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandFlagHelp = collectDynamicExtensionFlagHelpByCommand(activationResult.registrations.flags);\n const commandDescriptors = collectExtensionCommandHelpDescriptors(\n commandHandlers,\n activationResult.registrations.commands,\n activationResult.registrations.flags,\n );\n const snapshot: RuntimeExtensionSnapshot = {\n hooks: activationResult.hooks,\n commands: activationResult.commands,\n parsers: activationResult.parsers,\n preflight: activationResult.preflight,\n services: activationResult.services,\n renderers: activationResult.renderers,\n registrations: activationResult.registrations,\n pmRoot,\n settings,\n commandHandlers,\n commandFlagHelp,\n commandDescriptors,\n loadWarnings: [...loadResult.warnings],\n activationWarnings: [...activationResult.warnings],\n loadedCount: loadResult.loaded.length,\n loadFailedCount: loadResult.failed.length,\n activationFailedCount: activationResult.failed.length,\n };\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot,\n };\n return snapshot;\n } catch {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n}\n\nasync function maybeLoadRuntimeExtensions(\n command: Command,\n): Promise<\n {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n } | null\n> {\n const globalOptions = getGlobalOptions(command);\n if (globalOptions.noExtensions) {\n return null;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n return null;\n }\n\n emitExtensionProfile(globalOptions, snapshot);\n return {\n hooks: snapshot.hooks,\n commands: snapshot.commands,\n parsers: snapshot.parsers,\n preflight: snapshot.preflight,\n services: snapshot.services,\n renderers: snapshot.renderers,\n registrations: snapshot.registrations,\n pmRoot,\n };\n}\n\nasync function executeRegisteredRuntimeMigrations(\n migrations: RegisteredExtensionSchemaMigrationDefinition[],\n pmRoot: string,\n): Promise<string[]> {\n const warnings: string[] = [];\n for (let index = 0; index < migrations.length; index += 1) {\n const migration = migrations[index];\n const status = resolveNormalizedMigrationStatus(migration.definition);\n if (status === \"applied\") {\n continue;\n }\n\n const runtimeDefinition = migration.runtime_definition ?? migration.definition;\n const run = (runtimeDefinition as { run?: unknown }).run;\n if (typeof run !== \"function\") {\n continue;\n }\n\n const migrationId = resolveMigrationId(migration.definition, index);\n try {\n await Promise.resolve(\n run({\n id: migrationId,\n command: \"migration\",\n layer: migration.layer,\n extension: migration.name,\n pm_root: pmRoot,\n status,\n }),\n );\n migration.definition.status = \"applied\";\n delete migration.definition.reason;\n delete migration.definition.error;\n delete migration.definition.message;\n } catch (error: unknown) {\n migration.definition.status = \"failed\";\n migration.definition.reason = describeUnknownError(error);\n warnings.push(`extension_migration_failed:${migration.layer}:${migration.name}:${migrationId}`);\n }\n }\n return warnings;\n}\n\nasync function runRequiredExtensionCommand(\n command: Command,\n options: Record<string, unknown>,\n globalOptions: GlobalOptions,\n): Promise<unknown> {\n const commandPath = getCommandPath(command);\n let commandArgs = command.args.map(String);\n let commandOptions = { ...options };\n let resolvedGlobalOptions = { ...globalOptions };\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n resolvedGlobalOptions = parserOverride.context.global;\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...resolvedGlobalOptions },\n pm_root: pmRoot,\n });\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (resolvedGlobalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (!extensionCommandResult.handled) {\n if (extensionCommandResult.warnings.length > 0) {\n const warningCode = extensionCommandResult.warnings[0];\n const cause = extensionCommandResult.errorMessage?.trim();\n const causeSuffix = cause ? ` ${cause}` : \"\";\n throw new PmCliError(\n `Command \"${commandPath}\" failed in extension handler (${warningCode}).${causeSuffix}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n throw new PmCliError(`Command \"${commandPath}\" is provided by extensions and is not currently available.`, EXIT_CODE.NOT_FOUND);\n }\n setActiveCommandResult(extensionCommandResult.result);\n return extensionCommandResult.result;\n}\n\nconst WRAPPED_ACTION_HANDLER = Symbol(\"pm.wrappedActionHandler\");\n\nfunction wrapProgramActionsForExtensionHandlers(rootProgram: Command): void {\n const visit = (entry: Command): void => {\n type ActionMutableCommand = Command & {\n _actionHandler?: (...args: unknown[]) => unknown;\n [WRAPPED_ACTION_HANDLER]?: boolean;\n };\n const actionEntry = entry as ActionMutableCommand;\n if (typeof actionEntry._actionHandler === \"function\" && actionEntry[WRAPPED_ACTION_HANDLER] !== true) {\n const originalAction = actionEntry._actionHandler;\n actionEntry._actionHandler = async function wrappedActionHandler(this: unknown, ...actionArgs: unknown[]): Promise<unknown> {\n const possibleCommand = actionArgs[actionArgs.length - 1];\n const actionCommand = possibleCommand instanceof Command ? possibleCommand : entry;\n const startedAt = Date.now();\n clearResolvedGlobalOptions(actionCommand);\n let globalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let commandArgs = actionCommand.args.map(String);\n const activeRegistrations = getActiveExtensionRegistrations();\n const extensionFlagDefinitions = activeRegistrations\n ? collectExtensionFlagDefinitionsForInvocation(activeRegistrations, commandPath, commandArgs)\n : [];\n const runtimeFieldFlagDefinitions = await collectRuntimeFieldLooseFlagDefinitionsForCommand(commandPath, pmRoot);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, [\n ...extensionFlagDefinitions,\n ...runtimeFieldFlagDefinitions,\n ]);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n globalOptions = await applyDefaultOutputFormat(globalOptions);\n setResolvedGlobalOptions(actionCommand, globalOptions);\n actionCommand.args = [...commandArgs];\n if (\"_processArguments\" in actionCommand && typeof actionCommand._processArguments === \"function\") {\n actionCommand._processArguments();\n }\n if (actionArgs.length > 0 && Array.isArray(actionArgs[0])) {\n actionArgs[0] = [...actionCommand.processedArgs];\n }\n for (const [key, value] of Object.entries(commandOptions)) {\n actionCommand.setOptionValueWithSource(key, value, \"cli\");\n }\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: pmRoot,\n });\n\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (extensionCommandResult.handled) {\n setActiveCommandResult(extensionCommandResult.result);\n printResult(extensionCommandResult.result, {\n ...globalOptions,\n command: commandPath,\n commandArgs,\n commandOptions,\n pmRoot,\n });\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n\n return await originalAction.apply(this, actionArgs);\n };\n actionEntry[WRAPPED_ACTION_HANDLER] = true;\n }\n for (const child of entry.commands) {\n visit(child);\n }\n };\n visit(rootProgram);\n}\n\nasync function registerDynamicExtensionCommandPaths(rootProgram: Command, invocationArgv: string[]): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(invocationArgv);\n if (bootstrapGlobalOptions.noExtensions) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n // Ensure usage/help/error formatting overrides are available even when parse\n // errors occur before preAction hooks initialize full runtime extension state.\n setActiveExtensionServices(snapshot.services);\n activeRuntimeExtensionCommandDescriptors = new Map(snapshot.commandDescriptors);\n const typeRegistry = resolveItemTypeRegistry(snapshot.settings, snapshot.registrations);\n attachCreateUpdatePolicyHelpText(rootProgram, typeRegistry, invocationArgv);\n\n const commandPaths = [...new Set([...snapshot.commandHandlers, ...snapshot.commandDescriptors.keys()])].sort((left, right) =>\n left.localeCompare(right),\n );\n for (const commandPath of commandPaths) {\n const pathParts = commandPath.split(\" \").filter((part) => part.length > 0);\n if (pathParts.length === 0) {\n continue;\n }\n const descriptor = snapshot.commandDescriptors.get(commandPath);\n const existingCommand = findCommandByPath(rootProgram, pathParts);\n const flagHelp = snapshot.commandFlagHelp.get(commandPath);\n const metadataHelp = descriptor ? buildDynamicExtensionCommandMetadataHelp(descriptor) : null;\n if (existingCommand) {\n if (flagHelp) {\n existingCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n existingCommand.addHelpText(\"after\", metadataHelp);\n }\n continue;\n }\n\n const dynamicCommand = ensureCommandPath(rootProgram, pathParts);\n if (!dynamicCommand) {\n continue;\n }\n if (descriptor?.description) {\n dynamicCommand.description(descriptor.description);\n }\n if (descriptor) {\n applyDynamicExtensionArguments(dynamicCommand, descriptor);\n }\n if (flagHelp) {\n dynamicCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n dynamicCommand.addHelpText(\"after\", metadataHelp);\n }\n\n dynamicCommand\n .allowUnknownOption(true)\n .allowExcessArguments(true)\n .action(async (...actionArgs: unknown[]) => {\n const maybeCommand = actionArgs[actionArgs.length - 1];\n const command = maybeCommand instanceof Command ? maybeCommand : dynamicCommand;\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForInvocation(\n snapshot.registrations,\n commandPath,\n command.args.map(String),\n );\n const scopedOptions = extractCommandScopedOptions(\n command,\n command.args.map(String),\n extensionFlagDefinitions,\n );\n const result = await runRequiredExtensionCommand(command, scopedOptions, globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, {\n ...globalOptions,\n command: commandPath,\n commandArgs: command.args.map(String),\n commandOptions: scopedOptions,\n pmRoot,\n });\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nfunction resolveCliVersion(): string {\n try {\n const packageJsonPath = path.join(resolvePmPackageRoot(), \"package.json\");\n const raw = fs.readFileSync(packageJsonPath, \"utf8\");\n const parsed = JSON.parse(raw) as { version?: unknown };\n return typeof parsed.version === \"string\" ? parsed.version : \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\nconst CLI_VERSION = resolveCliVersion();\n\nconst program = new Command();\nprogram\n .name(\"pm\")\n .description(\"Universal, flexible, extensible, agent-optimized project management CLI for any project or programming language.\")\n .version(CLI_VERSION)\n .showHelpAfterError(false)\n .allowExcessArguments(false)\n .allowUnknownOption(false)\n .configureOutput({\n writeOut: (str) => {\n writeStdout(str);\n },\n // Commander errors are rendered in our own catch path.\n writeErr: () => {},\n })\n .option(\"--json\", \"Output JSON instead of TOON\")\n .option(\"--quiet\", \"Suppress stdout output\")\n .option(\"--no-changed-fields\", \"Omit the changed_fields array from mutation output (keeps changed_field_count)\")\n .option(\"--path <dir>\", \"Override PM path for this command\")\n .option(\"--no-extensions\", \"Disable extension loading\")\n .option(\"--no-pager\", \"Disable pager integration for help and long output\")\n .option(\"--explain\", \"Render extended rationale and examples in help output\")\n .option(\"--profile\", \"Print deterministic timing diagnostics\")\n .exitOverride();\n\nprogram.hook(\"preAction\", async (_thisCommand, actionCommand) => {\n activeExtensionHookContext = null;\n activeTelemetryCommandContext = null;\n clearActiveExtensionHooks();\n clearResolvedGlobalOptions(actionCommand);\n const bootstrapGlobalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n let commandArgs = actionCommand.args.map(String);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs);\n let globalOptions = { ...bootstrapGlobalOptions };\n await maybeRunFirstUseTelemetryPrompt(commandPath, globalOptions);\n const fallbackPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const runtimeExtensions = await maybeLoadRuntimeExtensions(actionCommand);\n if (!runtimeExtensions) {\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: fallbackPmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n fallbackPmRoot,\n defaultPreflightDecision(),\n );\n return;\n }\n\n setActiveExtensionHooks(runtimeExtensions.hooks);\n setActiveExtensionCommands(runtimeExtensions.commands);\n setActiveExtensionParsers(runtimeExtensions.parsers);\n setActiveExtensionPreflight(runtimeExtensions.preflight);\n setActiveExtensionServices(runtimeExtensions.services);\n setActiveExtensionRenderers(runtimeExtensions.renderers);\n setActiveExtensionRegistrations(runtimeExtensions.registrations);\n\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForInvocation(\n runtimeExtensions.registrations,\n commandPath,\n commandArgs,\n );\n commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, extensionFlagDefinitions);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n\n const preflightOverride = await runActivePreflightOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n decision: defaultPreflightDecision(),\n });\n if (globalOptions.profile && preflightOverride.warnings.length > 0) {\n printError(`profile:extensions preflight_warnings=${formatHookWarnings(preflightOverride.warnings)}`);\n }\n commandArgs = preflightOverride.context.args;\n commandOptions = preflightOverride.context.options;\n globalOptions = preflightOverride.context.global;\n const preflightDecision = preflightOverride.decision;\n\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n runtimeExtensions.pmRoot,\n preflightDecision,\n );\n\n const migrationWarnings = preflightDecision.run_extension_migrations\n ? await executeRegisteredRuntimeMigrations(runtimeExtensions.registrations.migrations, runtimeExtensions.pmRoot)\n : [];\n if (globalOptions.profile && migrationWarnings.length > 0) {\n printError(`profile:extensions migration_warnings=${formatHookWarnings(migrationWarnings)}`);\n }\n const migrationBlockers = collectMandatoryMigrationBlockers(runtimeExtensions.registrations.migrations);\n activeExtensionHookContext = {\n hooks: runtimeExtensions.hooks,\n commandName: commandPath,\n commandArgs,\n commandOptions: { ...commandOptions },\n globalOptions: { ...globalOptions },\n pmRoot: runtimeExtensions.pmRoot,\n profileEnabled: Boolean(globalOptions.profile),\n migrationBlockers,\n };\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n\n const hookWarnings = await runBeforeCommandHooks(runtimeExtensions.hooks, {\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n if (preflightDecision.enforce_mandatory_migration_gate) {\n enforceMandatoryMigrationWriteGate(commandPath, commandOptions, migrationBlockers);\n }\n});\n\nprogram.hook(\"postAction\", async () => {\n const outcome = buildPostActionTelemetryOutcome();\n sentryFinishCommandSpan(outcome.ok, outcome.error, {\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n exit_code: outcome.exit_code,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n await runAndClearAfterCommandHooks(outcome);\n});\n\nconst VERSION_FLAG_TOKENS = new Set([\"--version\", \"-V\"]);\nconst SETUP_COMMAND_NAMES = new Set([\n \"config\",\n \"extension\",\n \"init\",\n \"install\",\n \"package\",\n \"packages\",\n \"templates\",\n \"upgrade\",\n]);\nconst LIST_QUERY_COMMAND_NAMES = new Set([\n \"activity\",\n \"aggregate\",\n \"context\",\n \"ctx\",\n \"get\",\n \"history\",\n \"list\",\n \"list-all\",\n \"list-blocked\",\n \"list-canceled\",\n \"list-closed\",\n \"list-draft\",\n \"list-in-progress\",\n \"list-open\",\n \"search\",\n]);\nconst MUTATION_COMMAND_NAMES = new Set([\n \"append\",\n \"close\",\n \"comments\",\n \"delete\",\n \"deps\",\n \"discover\",\n \"docs\",\n \"files\",\n \"learnings\",\n \"notes\",\n \"plan\",\n \"restore\",\n \"update\",\n \"update-many\",\n \"create\",\n]);\nconst OPERATION_COMMAND_NAMES = new Set([\n \"claim\",\n \"close-task\",\n \"contracts\",\n \"gc\",\n \"health\",\n \"pause-task\",\n \"release\",\n \"start-task\",\n \"stats\",\n \"test\",\n \"test-all\",\n \"test-runs\",\n \"test-runs-worker\",\n \"validate\",\n]);\ninterface CoreCommandRegistrationSelection {\n setup: boolean;\n listQuery: boolean;\n mutation: boolean;\n operation: boolean;\n targetCommandName?: string;\n}\nconst REGISTER_ALL_CORE_COMMAND_FAMILIES: CoreCommandRegistrationSelection = {\n setup: true,\n listQuery: true,\n mutation: true,\n operation: true,\n};\n\nconst RUNTIME_SCHEMA_FLAG_BOOTSTRAP_COMMANDS = new Set([\n \"create\",\n \"update\",\n \"update-many\",\n \"list\",\n \"list-all\",\n \"list-draft\",\n \"list-open\",\n \"list-in-progress\",\n \"list-blocked\",\n \"list-closed\",\n \"list-canceled\",\n \"search\",\n \"calendar\",\n \"context\",\n \"templates\",\n]);\n\nfunction invocationRequestsVersion(invocationArgv: string[]): boolean {\n return invocationArgv.some((token) => VERSION_FLAG_TOKENS.has(token));\n}\n\nfunction resolveCoreCommandRegistrationSelection(\n invocationArgv: string[],\n): CoreCommandRegistrationSelection {\n if (invocationRequestsVersion(invocationArgv)) {\n return {\n setup: false,\n listQuery: false,\n mutation: false,\n operation: false,\n };\n }\n if (\n invocationArgv.length === 0 ||\n parseBootstrapHelpRequest(invocationArgv).requested\n ) {\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n }\n const normalizedCommand = commandName.trim().toLowerCase();\n if (SETUP_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: true,\n listQuery: false,\n mutation: false,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (LIST_QUERY_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: true,\n mutation: false,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (MUTATION_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: false,\n mutation: true,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (OPERATION_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: false,\n mutation: false,\n operation: true,\n targetCommandName: normalizedCommand,\n };\n }\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n}\n\nfunction shouldAttachRichHelpTextForInvocation(invocationArgv: string[]): boolean {\n return (\n invocationArgv.length === 0 ||\n parseBootstrapHelpRequest(invocationArgv).requested\n );\n}\n\nasync function registerCoreCommandFamilies(\n rootProgram: Command,\n selection: CoreCommandRegistrationSelection,\n): Promise<void> {\n if (selection.setup) {\n const { registerSetupCommands } = await loadSetupRegistrationModule();\n registerSetupCommands(rootProgram);\n }\n if (selection.listQuery) {\n const { registerListQueryCommands } =\n await loadListQueryRegistrationModule();\n const commandFilter =\n typeof selection.targetCommandName === \"string\" &&\n LIST_QUERY_COMMAND_NAMES.has(selection.targetCommandName)\n ? new Set([selection.targetCommandName])\n : undefined;\n registerListQueryCommands(rootProgram, commandFilter ? { commandFilter } : undefined);\n }\n if (selection.mutation) {\n const { registerMutationCommands } = await loadMutationRegistrationModule();\n registerMutationCommands(rootProgram);\n }\n if (selection.operation) {\n const { registerOperationCommands } = await loadOperationRegistrationModule();\n registerOperationCommands(rootProgram);\n }\n}\n\nfunction isKnownTopLevelCommandOrAlias(rootProgram: Command, commandName: string): boolean {\n const normalized = commandName.trim().toLowerCase();\n for (const command of rootProgram.commands) {\n if (command.name().trim().toLowerCase() === normalized) {\n return true;\n }\n if (command.aliases().some((alias) => alias.trim().toLowerCase() === normalized)) {\n return true;\n }\n }\n return false;\n}\n\nfunction shouldRegisterDynamicExtensionPaths(rootProgram: Command, invocationArgv: string[]): boolean {\n if (invocationRequestsVersion(invocationArgv)) {\n return false;\n }\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested) {\n return true;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return false;\n }\n return !isKnownTopLevelCommandOrAlias(rootProgram, commandName);\n}\n\nfunction shouldRegisterRuntimeSchemaFlags(invocationArgv: string[]): boolean {\n if (invocationRequestsVersion(invocationArgv)) {\n return false;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return false;\n }\n return RUNTIME_SCHEMA_FLAG_BOOTSTRAP_COMMANDS.has(commandName);\n}\n\nexport async function runPmCli(rawArgv: string[] = process.argv.slice(2)): Promise<void> {\n const bootstrapInvocation = normalizeBootstrapInvocation(rawArgv);\n const invocationArgv = bootstrapInvocation.argv;\n const invocationProcessArgv = [process.argv[0], process.argv[1], ...invocationArgv];\n const isBareInvocation = invocationArgv.length === 0;\n try {\n applyBootstrapPagerPolicy(invocationArgv);\n const registrationSelection =\n resolveCoreCommandRegistrationSelection(invocationArgv);\n await registerCoreCommandFamilies(program, registrationSelection);\n if (shouldAttachRichHelpTextForInvocation(invocationArgv)) {\n attachRichHelpText(program, invocationArgv);\n }\n const registerDynamicCommands = shouldRegisterDynamicExtensionPaths(program, invocationArgv);\n if (registerDynamicCommands) {\n await registerDynamicExtensionCommandPaths(program, invocationArgv);\n } else {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n }\n if (shouldRegisterRuntimeSchemaFlags(invocationArgv)) {\n await registerRuntimeSchemaFieldFlags(program, invocationArgv);\n }\n wrapProgramActionsForExtensionHandlers(program);\n const renderedBootstrapJsonHelp = await maybeRenderBootstrapJsonHelp(program, invocationArgv, activeRuntimeExtensionCommandDescriptors);\n if (renderedBootstrapJsonHelp) {\n return;\n }\n if (isBareInvocation) {\n program.outputHelp();\n return;\n }\n await program.parseAsync(invocationProcessArgv);\n } catch (error: unknown) {\n const bootstrapGlobal = parseBootstrapGlobalOptions(invocationArgv);\n const jsonErrors = bootstrapGlobal.json;\n const bootstrapPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobal.path);\n const attemptedCommand = parseBootstrapCommandName(invocationArgv) ?? \"<unknown>\";\n\n const emitTelemetryCommandError = async (params: {\n command: string;\n errorCode: string;\n errorMessage: string;\n exitCode: number;\n options: Record<string, unknown>;\n resolutionStage: TelemetryResolutionStage;\n }) => {\n const errorCategory = resolveTelemetryErrorCategory(params.errorCode);\n const commandResolution = deriveTelemetryCommandResolution({\n ok: false,\n errorCode: params.errorCode,\n errorCategory,\n });\n await emitTelemetryErrorEvent({\n command: params.command,\n args: invocationArgv,\n options: params.options,\n global: bootstrapGlobal,\n pm_version: CLI_VERSION,\n pm_root: bootstrapPmRoot,\n error_code: params.errorCode,\n error_message: params.errorMessage,\n exit_code: params.exitCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: params.resolutionStage,\n });\n return {\n errorCategory,\n commandResolution,\n };\n };\n\n if (!bootstrapGlobal.noExtensions) {\n const bootstrapSnapshot = await loadRuntimeExtensionSnapshot(bootstrapPmRoot);\n setActiveExtensionServices(bootstrapSnapshot?.services ?? { overrides: [] });\n }\n\n const numericExitCode = readThrownExitCode(error);\n if (\n error instanceof PmCliError ||\n (!isCommanderError(error) && typeof numericExitCode === \"number\" && Number.isFinite(numericExitCode))\n ) {\n const errorMessage = describeUnknownError(error);\n const exitCode = error instanceof PmCliError ? error.exitCode : normalizeThrownExitCode(numericExitCode as number);\n const context = error instanceof PmCliError ? error.context : undefined;\n const enrichedContext = buildPmCliRecoveryContext(context, invocationArgv, errorMessage);\n const classification = classifyPmCliError(errorMessage, enrichedContext);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n await ensureSentryForErrorReporting();\n sentryLogCliUsageError({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: exitCode,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n sentryFinishCommandSpan(false, errorMessage, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: exitCode,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: errorMessage,\n exit_code: exitCode,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n sentryCaptureCliError(wrapThrownErrorForSentry(error, errorMessage));\n if (jsonErrors) {\n printError(JSON.stringify(formatPmCliErrorForJson(errorMessage, exitCode, enrichedContext), null, 2));\n } else {\n printError(formatPmCliErrorForDisplay(errorMessage, enrichedContext));\n }\n await sentryFlush();\n process.exitCode = exitCode;\n return;\n }\n\n if (typeof error === \"object\" && error !== null && \"code\" in error) {\n const code = (error as { code?: string }).code;\n const rawMessage = typeof (error as { message?: unknown }).message === \"string\" ? ((error as { message?: string }).message ?? \"\") : \"\";\n const isHelpDisplayCode =\n code === \"commander.helpDisplayed\" || code === \"commander.help\" || code === \"commander.helpCommand\";\n if (isHelpDisplayCode || rawMessage.includes(\"(outputHelp)\")) {\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested && !isKnownHelpCommandPath(program, helpRequest.commandPathTokens)) {\n const unknownToken = helpRequest.commandPathTokens[0] ?? parseBootstrapCommandName(invocationArgv) ?? \"<command>\";\n const unknownMessage = `unknown command '${unknownToken}'`;\n const usageContext = await resolveCommanderUsageContext(\n { message: unknownMessage },\n program,\n activeRuntimeExtensionCommandDescriptors,\n );\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: unknownToken,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code ?? \"commander.helpDisplayed\",\n },\n resolutionStage: \"parse\",\n });\n await ensureSentryForErrorReporting();\n sentryLogCliUsageError({\n command: unknownToken,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, unknownMessage, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: unknownMessage,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code === \"commander.version\") {\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code?.startsWith(\"commander.\")) {\n const usageContext = await resolveCommanderUsageContext(error, program, activeRuntimeExtensionCommandDescriptors);\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code,\n },\n resolutionStage: \"parse\",\n });\n await ensureSentryForErrorReporting();\n sentryLogCliUsageError({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson(error, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage(error, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, usageContext.message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: usageContext.message,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n }\n\n await ensureSentryForErrorReporting();\n sentryCaptureCliError(error);\n const message = describeUnknownError(error);\n const classification = classifyUnknownError(message);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.GENERIC_FAILURE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n sentryFinishCommandSpan(false, message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: message,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n if (jsonErrors) {\n printError(JSON.stringify(formatUnknownErrorForJson(message, EXIT_CODE.GENERIC_FAILURE), null, 2));\n } else {\n printError(message);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n}\n\nexport const _testOnly = {\n isCommanderError,\n normalizeThrownExitCode,\n readThrownExitCode,\n wrapThrownErrorForSentry,\n};\n"],"names":[],"mappings":"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","debugId":"253a39d8-edf5-592c-8b3e-ed509a8a6f11"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["cli/main.ts"],"sourceRoot":"/","sourcesContent":["#!/usr/bin/env node\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Command } from \"commander\";\nimport {\n activateExtensions,\n clearActiveExtensionHooks,\n createEmptyExtensionRegistrationRegistry,\n getActiveCommandResult,\n getActiveExtensionRegistrations,\n loadExtensions,\n runActiveCommandHandler,\n runActiveParserOverride,\n runActivePreflightOverride,\n runAfterCommandHooks,\n runBeforeCommandHooks,\n setActiveCommandResult,\n setActiveCommandContext,\n setActiveExtensionCommands,\n setActiveExtensionHooks,\n setActiveExtensionParsers,\n setActiveExtensionPreflight,\n setActiveExtensionRegistrations,\n setActiveExtensionRenderers,\n setActiveExtensionServices,\n type ExtensionCommandRegistry,\n type ExtensionHookRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionServiceRegistry,\n type PreflightRuntimeDecision,\n type RegisteredExtensionSchemaMigrationDefinition,\n type ExtensionRendererRegistry,\n} from \"../core/extensions/index.js\";\nimport { pathExists } from \"../core/fs/fs-utils.js\";\nimport { resolvePmPackageRootFromModule } from \"../core/packages/root.js\";\nimport {\n resolveItemTypeRegistry,\n} from \"../core/item/type-registry.js\";\nimport {\n resolveRuntimeFieldRegistry,\n type RuntimeFieldCommand,\n} from \"../core/schema/runtime-schema.js\";\nimport { EXIT_CODE, resolveTelemetryErrorCategory, type TelemetryErrorCategory } from \"../core/shared/constants.js\";\nimport { PmCliError, type PmCliErrorContext, type PmCliErrorRecoveryPayload } from \"../core/shared/errors.js\";\nimport { asRecordOrNull, toNonEmptyStringOrUndefined } from \"../core/shared/primitives.js\";\nimport { printError, printResult, writeStdout } from \"../core/output/output.js\";\nimport { maybeRunFirstUseTelemetryPrompt } from \"../core/telemetry/consent.js\";\nimport {\n emitTelemetryErrorEvent,\n finishTelemetryCommand,\n startTelemetryCommand,\n type ActiveTelemetryCommand,\n type TelemetryCommandOutcome,\n} from \"../core/telemetry/runtime.js\";\nimport {\n deriveTelemetryCommandResolution,\n type TelemetryCommandResolution,\n type TelemetryResolutionStage,\n} from \"../core/telemetry/observability.js\";\nimport {\n sentryCaptureCliError,\n sentryFinishCommandSpan,\n sentryFlush,\n sentryLogCliUsageError,\n sentrySetCommandContext,\n sentryStartCommandSpan,\n} from \"../core/sentry/helpers.js\";\nimport { ensureSentryInit } from \"../core/sentry/instrument.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../core/store/paths.js\";\nimport { readSettings } from \"../core/store/settings.js\";\nimport type { GlobalOptions } from \"../core/shared/command-types.js\";\nimport type { PmSettings } from \"../types/index.js\";\nimport {\n coerceLooseCommandOptionsWithFlagDefinitions,\n parseLooseCommandOptions,\n validateLooseCommandOptionsWithFlagDefinitions,\n} from \"./extension-command-options.js\";\nimport { attachRichHelpText } from \"./help-content.js\";\nimport {\n extractProvidedOptionFlags,\n normalizeLongOptionFlag,\n renderPmCommand,\n} from \"./argv-utils.js\";\nimport {\n classifyCommanderError,\n classifyPmCliError,\n classifyUnknownError,\n formatPmCliErrorForDisplay,\n formatPmCliErrorForJson,\n formatUnknownErrorForJson,\n} from \"./error-guidance.js\";\nimport {\n applyDefaultOutputFormat,\n clearResolvedGlobalOptions,\n collect,\n formatHookWarnings,\n getCommandPath,\n getGlobalOptions,\n invalidateSearchCachesForMutation,\n setResolvedGlobalOptions,\n} from \"./registration-helpers.js\";\nimport type { registerSetupCommands as RegisterSetupCommandsFn } from \"./register-setup.js\";\nimport type { registerListQueryCommands as RegisterListQueryCommandsFn } from \"./register-list-query.js\";\nimport type { registerMutationCommands as RegisterMutationCommandsFn } from \"./register-mutation.js\";\nimport type { registerOperationCommands as RegisterOperationCommandsFn } from \"./register-operations.js\";\nimport { createLazyModule } from \"../core/shared/lazy-module.js\";\nimport {\n type ExtensionCommandHelpDescriptor,\n normalizeExtensionCommandPath,\n collectDynamicExtensionFlagHelpByCommand,\n collectExtensionCommandHelpDescriptors,\n applyDynamicExtensionArguments,\n buildDynamicExtensionCommandMetadataHelp,\n findCommandByPath,\n ensureCommandPath,\n} from \"./extension-command-help.js\";\nimport {\n parseBootstrapGlobalOptions,\n applyBootstrapPagerPolicy,\n parseBootstrapHelpRequest,\n parseBootstrapCommandName,\n normalizeBootstrapInvocation,\n} from \"./bootstrap-args.js\";\nimport {\n type MandatoryMigrationBlocker,\n collectMandatoryMigrationBlockers,\n enforceMandatoryMigrationWriteGate,\n enforceItemFormatWriteGateAndPreflightMigration,\n resolveMigrationId,\n resolveNormalizedMigrationStatus,\n} from \"./migration-gates.js\";\nimport {\n isKnownHelpCommandPath,\n formatCommanderUsageMessage,\n formatCommanderUsageJson,\n resolveCommanderUsageContext,\n} from \"./commander-usage.js\";\nimport {\n maybeRenderBootstrapJsonHelp,\n attachCreateUpdatePolicyHelpText,\n} from \"./help-json-payload.js\";\n\nconst PM_PACKAGE_ROOT_ENV = \"PM_CLI_PACKAGE_ROOT\";\n\nfunction resolvePmPackageRoot(): string {\n return resolvePmPackageRootFromModule(import.meta.url, [\"../..\"]);\n}\n\nif (typeof process.env[PM_PACKAGE_ROOT_ENV] !== \"string\" || process.env[PM_PACKAGE_ROOT_ENV]?.trim().length === 0) {\n process.env[PM_PACKAGE_ROOT_ENV] = resolvePmPackageRoot();\n}\n\n\ninterface ActiveExtensionHookContext {\n hooks: ExtensionHookRegistry;\n commandName: string;\n commandArgs: string[];\n commandOptions: Record<string, unknown>;\n globalOptions: GlobalOptions;\n pmRoot: string;\n profileEnabled: boolean;\n migrationBlockers: MandatoryMigrationBlocker[];\n}\n\nlet activeExtensionHookContext: ActiveExtensionHookContext | null = null;\nlet activeTelemetryCommandContext: ActiveTelemetryCommand | null = null;\n\nconst TELEMETRY_COMMAND_RESOLUTION_SET = new Set<TelemetryCommandResolution>([\n \"success\",\n \"nonexistent_command\",\n \"invalid_option\",\n \"missing_required_option\",\n \"missing_required_argument\",\n \"invalid_usage\",\n \"validation_failed\",\n \"health_findings\",\n \"validation_findings\",\n \"conflict\",\n \"runtime_failed\",\n \"unknown_failed\",\n]);\n\nconst TELEMETRY_RESOLUTION_STAGE_SET = new Set<TelemetryResolutionStage>([\"parse\", \"preflight\", \"execute\", \"unknown\"]);\nconst TELEMETRY_ERROR_CATEGORY_SET = new Set<TelemetryErrorCategory>([\"usage\", \"validation\", \"conflict\", \"runtime\", \"unknown\"]);\n\ninterface RuntimeExtensionSnapshot {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n settings: PmSettings;\n commandHandlers: string[];\n commandFlagHelp: Map<string, string>;\n commandDescriptors: Map<string, ExtensionCommandHelpDescriptor>;\n loadWarnings: string[];\n activationWarnings: string[];\n loadedCount: number;\n loadFailedCount: number;\n activationFailedCount: number;\n}\n\nlet runtimeExtensionSnapshotCache: { key: string; snapshot: RuntimeExtensionSnapshot | null } | null = null;\nlet activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\nconst HANDLED_ERROR_SENTRY_FLUSH_TIMEOUT_MS = 250;\nconst EXPECTED_HANDLED_ERROR_EXIT_CODES = new Set<number>([\n EXIT_CODE.USAGE,\n EXIT_CODE.NOT_FOUND,\n EXIT_CODE.CONFLICT,\n]);\nconst TRUE_LIKE_ENV_VALUES = new Set([\"1\", \"true\", \"yes\", \"on\"]);\n\ntype SetupRegistrationModule = {\n registerSetupCommands: typeof RegisterSetupCommandsFn;\n};\ntype ListQueryRegistrationModule = {\n registerListQueryCommands: typeof RegisterListQueryCommandsFn;\n};\ntype MutationRegistrationModule = {\n registerMutationCommands: typeof RegisterMutationCommandsFn;\n};\ntype OperationRegistrationModule = {\n registerOperationCommands: typeof RegisterOperationCommandsFn;\n};\n\nconst loadSetupRegistrationModule = createLazyModule<SetupRegistrationModule>(() => import(\"./register-setup.js\"));\nconst loadListQueryRegistrationModule = createLazyModule<ListQueryRegistrationModule>(() => import(\"./register-list-query.js\"));\nconst loadMutationRegistrationModule = createLazyModule<MutationRegistrationModule>(() => import(\"./register-mutation.js\"));\nconst loadOperationRegistrationModule = createLazyModule<OperationRegistrationModule>(() => import(\"./register-operations.js\"));\n\nfunction describeUnknownError(error: unknown): string {\n if (error instanceof PmCliError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return \"Unknown failure\";\n}\n\nfunction readThrownExitCode(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null || !(\"exitCode\" in error)) {\n return undefined;\n }\n const exitCode = (error as { exitCode?: unknown }).exitCode;\n return typeof exitCode === \"number\" && Number.isFinite(exitCode) ? exitCode : undefined;\n}\n\nfunction normalizeThrownExitCode(exitCode: number): number {\n const normalized = Math.trunc(exitCode);\n return normalized > EXIT_CODE.SUCCESS ? normalized : EXIT_CODE.GENERIC_FAILURE;\n}\n\nfunction isCommanderError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n typeof (error as { code?: unknown }).code === \"string\" &&\n (error as { code: string }).code.startsWith(\"commander.\")\n );\n}\n\nfunction wrapThrownErrorForSentry(error: unknown, message: string): Error {\n if (error instanceof Error) {\n return error;\n }\n const wrapped = new Error(message) as Error & { exitCode?: number };\n const exitCode = readThrownExitCode(error);\n if (exitCode !== undefined) {\n wrapped.exitCode = normalizeThrownExitCode(exitCode);\n }\n return wrapped;\n}\n\nfunction renderAttemptedCommand(argv: string[]): string {\n return renderPmCommand(argv);\n}\n\nfunction inferMissingFieldsFromErrorMessage(message: string): string[] | undefined {\n const matches = message.match(/--[a-zA-Z0-9][a-zA-Z0-9_-]*/g);\n if (!matches || matches.length === 0) {\n return undefined;\n }\n const normalized = [...new Set(matches.map((entry) => normalizeLongOptionFlag(entry) ?? entry))];\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction buildPmCliRecoveryContext(\n context: PmCliErrorContext | undefined,\n invocationArgv: string[],\n rawMessage: string,\n): PmCliErrorContext {\n const attemptedCommand = renderAttemptedCommand(invocationArgv);\n const providedFields = extractProvidedOptionFlags(invocationArgv);\n const providedSet = new Set(providedFields.map((flag) => normalizeLongOptionFlag(flag) ?? flag));\n const existingRecovery = context?.recovery;\n const rawInferred = existingRecovery?.suggested_retry ? undefined : inferMissingFieldsFromErrorMessage(rawMessage);\n const trulyMissing = rawInferred?.filter((flag) => !providedSet.has(normalizeLongOptionFlag(flag) ?? flag));\n const inferredMissing = trulyMissing && trulyMissing.length > 0 ? trulyMissing : undefined;\n let suggestedRetry = existingRecovery?.suggested_retry;\n if (!suggestedRetry && inferredMissing && inferredMissing.length > 0) {\n const missingFlag = inferredMissing[0];\n const normalizedMissing = normalizeLongOptionFlag(missingFlag);\n if (normalizedMissing) {\n suggestedRetry = renderAttemptedCommand([...invocationArgv, normalizedMissing, \"<value>\"]);\n }\n }\n if (!suggestedRetry) {\n suggestedRetry = attemptedCommand;\n }\n if (suggestedRetry === attemptedCommand) {\n suggestedRetry = undefined;\n }\n const recovery: PmCliErrorRecoveryPayload = {\n attempted_command: existingRecovery?.attempted_command ?? attemptedCommand,\n normalized_args: existingRecovery?.normalized_args ?? [...invocationArgv],\n provided_fields: existingRecovery?.provided_fields ?? (providedFields.length > 0 ? providedFields : undefined),\n missing: existingRecovery?.missing ?? inferredMissing,\n ...(suggestedRetry ? { suggested_retry: suggestedRetry } : {}),\n };\n return {\n ...(context ?? {}),\n recovery,\n };\n}\n\nfunction readRecordString(record: Record<string, unknown> | null, ...keys: string[]): string | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"string\") {\n const normalized = candidate.trim();\n if (normalized.length > 0) {\n return normalized;\n }\n }\n }\n return undefined;\n}\n\nfunction readRecordBoolean(record: Record<string, unknown> | null, ...keys: string[]): boolean | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"boolean\") {\n return candidate;\n }\n }\n return undefined;\n}\n\nfunction readRecordNumber(record: Record<string, unknown> | null, ...keys: string[]): number | undefined {\n if (!record) {\n return undefined;\n }\n for (const key of keys) {\n const candidate = record[key];\n if (typeof candidate === \"number\" && Number.isFinite(candidate)) {\n return Math.max(0, Math.trunc(candidate));\n }\n }\n return undefined;\n}\n\nfunction normalizeTelemetryCommandResolution(\n value: string | undefined,\n): TelemetryCommandResolution | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_COMMAND_RESOLUTION_SET.has(normalized as TelemetryCommandResolution)) {\n return undefined;\n }\n return normalized as TelemetryCommandResolution;\n}\n\nfunction normalizeTelemetryResolutionStage(value: string | undefined): TelemetryResolutionStage | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_RESOLUTION_STAGE_SET.has(normalized as TelemetryResolutionStage)) {\n return undefined;\n }\n return normalized as TelemetryResolutionStage;\n}\n\nfunction normalizeTelemetryErrorCategory(value: string | undefined): TelemetryErrorCategory | undefined {\n if (!value) {\n return undefined;\n }\n const normalized = value.trim().toLowerCase();\n if (!TELEMETRY_ERROR_CATEGORY_SET.has(normalized as TelemetryErrorCategory)) {\n return undefined;\n }\n return normalized as TelemetryErrorCategory;\n}\n\nfunction inferPostActionFailureMessage(result: Record<string, unknown> | null): string | undefined {\n const explicit = readRecordString(result, \"error\", \"message\");\n if (explicit) {\n return explicit;\n }\n\n const warnings = result?.warnings;\n if (Array.isArray(warnings)) {\n const firstWarning = warnings.find((value) => typeof value === \"string\" && value.trim().length > 0);\n if (typeof firstWarning === \"string\") {\n return firstWarning.trim();\n }\n }\n\n const skippedTriggered = readRecordBoolean(result, \"fail_on_skipped_triggered\", \"failOnSkippedTriggered\");\n if (skippedTriggered) {\n return \"linked_test_fail_on_skipped_triggered\";\n }\n\n const failedCount = readRecordNumber(result, \"failed\");\n if (typeof failedCount === \"number\" && failedCount > 0) {\n return `failed_runs:${failedCount}`;\n }\n\n const runResults = result?.run_results;\n if (Array.isArray(runResults)) {\n const failedRuns = runResults.filter((entry) => {\n const row = asRecordOrNull(entry);\n return row?.status === \"failed\";\n }).length;\n if (failedRuns > 0) {\n return `failed_runs:${failedRuns}`;\n }\n }\n\n return undefined;\n}\n\nfunction inferPostActionErrorCode(ok: boolean, exitCode: number): string | undefined {\n if (ok) {\n return undefined;\n }\n if (exitCode === EXIT_CODE.USAGE) {\n return \"invalid_command_usage\";\n }\n if (exitCode === EXIT_CODE.NOT_FOUND) {\n return \"item_not_found\";\n }\n if (exitCode === EXIT_CODE.CONFLICT) {\n return \"lock_conflict\";\n }\n if (exitCode === EXIT_CODE.DEPENDENCY_FAILED) {\n return \"dependency_failed\";\n }\n return \"command_failed\";\n}\n\nfunction buildPostActionTelemetryOutcome(): TelemetryCommandOutcome {\n const result = asRecordOrNull(getActiveCommandResult());\n const processExitCode =\n typeof process.exitCode === \"number\" && Number.isFinite(process.exitCode)\n ? Math.max(0, Math.trunc(process.exitCode))\n : undefined;\n const resultExitCode = readRecordNumber(result, \"exit_code\", \"exitCode\");\n const exitCode = processExitCode ?? resultExitCode ?? EXIT_CODE.SUCCESS;\n const ok = exitCode === EXIT_CODE.SUCCESS;\n const errorCode = readRecordString(result, \"error_code\", \"errorCode\") ?? inferPostActionErrorCode(ok, exitCode);\n const errorCategory =\n normalizeTelemetryErrorCategory(readRecordString(result, \"error_category\", \"errorCategory\")) ??\n (!ok ? resolveTelemetryErrorCategory(errorCode) : undefined);\n const errorMessage = !ok\n ? inferPostActionFailureMessage(result) ?? `command_exit_${exitCode}`\n : undefined;\n const commandResolution =\n normalizeTelemetryCommandResolution(readRecordString(result, \"command_resolution\", \"commandResolution\")) ??\n deriveTelemetryCommandResolution({\n ok,\n errorCode,\n errorCategory,\n });\n const resolutionStage =\n normalizeTelemetryResolutionStage(readRecordString(result, \"resolution_stage\", \"resolutionStage\")) ?? \"execute\";\n return {\n ok,\n error: errorMessage,\n exit_code: exitCode,\n error_code: errorCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: resolutionStage,\n };\n}\n\n\nasync function runAndClearAfterCommandHooks(outcome: TelemetryCommandOutcome): Promise<void> {\n const telemetryRuntime = activeTelemetryCommandContext;\n activeTelemetryCommandContext = null;\n await finishTelemetryCommand(telemetryRuntime, {\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n exit_code: outcome.exit_code,\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n\n const runtime = activeExtensionHookContext;\n activeExtensionHookContext = null;\n if (!runtime) {\n clearActiveExtensionHooks();\n return;\n }\n\n const hookWarnings = await runAfterCommandHooks(runtime.hooks, {\n command: runtime.commandName,\n args: runtime.commandArgs,\n options: { ...runtime.commandOptions },\n global: { ...runtime.globalOptions },\n pm_root: runtime.pmRoot,\n ok: outcome.ok,\n error: outcome.error,\n result: getActiveCommandResult(),\n });\n clearActiveExtensionHooks();\n if (runtime.profileEnabled && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n}\n\nasync function ensureSentryForErrorReporting(): Promise<void> {\n await ensureSentryInit();\n}\n\nfunction envFlagEnabled(key: string): boolean {\n return TRUE_LIKE_ENV_VALUES.has((process.env[key] ?? \"\").trim().toLowerCase());\n}\n\nfunction shouldLogHandledErrorToSentry(exitCode: number): boolean {\n if (envFlagEnabled(\"PM_SENTRY_CAPTURE_EXPECTED_ERRORS\")) {\n return true;\n }\n return !EXPECTED_HANDLED_ERROR_EXIT_CODES.has(Math.trunc(exitCode));\n}\n\nasync function maybeLogHandledCliErrorToSentry(params: {\n command: string;\n error_code: string;\n error_category: TelemetryErrorCategory;\n exit_code: number;\n error_message: string;\n command_resolution?: TelemetryCommandResolution;\n resolution_stage?: TelemetryResolutionStage;\n source_context?: string;\n}): Promise<boolean> {\n if (!shouldLogHandledErrorToSentry(params.exit_code)) {\n return false;\n }\n await ensureSentryForErrorReporting();\n sentryLogCliUsageError(params);\n return true;\n}\n\nfunction extractCommandScopedOptions(\n command: Command,\n commandArgs: string[],\n extensionFlagDefinitions: Array<Record<string, unknown>> = [],\n): Record<string, unknown> {\n const allOptions = command.optsWithGlobals() as Record<string, unknown>;\n const scoped: Record<string, unknown> = { ...allOptions };\n delete scoped.json;\n delete scoped.quiet;\n delete scoped.path;\n delete scoped.noExtensions;\n delete scoped.extensions;\n delete scoped.profile;\n delete scoped.pager;\n // --no-changed-fields is a global output control (commander exposes it as `changedFields`),\n // not a per-command mutation field; strip it so it never counts as an update input.\n delete scoped.changedFields;\n\n const looseOptions = parseLooseCommandOptions(commandArgs);\n if (extensionFlagDefinitions.length > 0) {\n validateLooseCommandOptionsWithFlagDefinitions(looseOptions, extensionFlagDefinitions, getCommandPath(command));\n }\n for (const [key, value] of Object.entries(looseOptions)) {\n if (scoped[key] === undefined) {\n scoped[key] = value;\n }\n }\n if (extensionFlagDefinitions.length > 0) {\n return coerceLooseCommandOptionsWithFlagDefinitions(scoped, extensionFlagDefinitions);\n }\n return scoped;\n}\n\nfunction collectExtensionFlagDefinitionsForCommand(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n): Array<Record<string, unknown>> {\n const normalizedCommandPath = normalizeExtensionCommandPath(commandPath);\n if (normalizedCommandPath.length === 0) {\n return [];\n }\n return registrations.flags\n .filter((entry) => normalizeExtensionCommandPath(entry.target_command) === normalizedCommandPath)\n .flatMap((entry) => entry.flags);\n}\n\nfunction collectExtensionFlagDefinitionsForInvocation(\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>,\n commandPath: string,\n commandArgs: string[],\n): Array<Record<string, unknown>> {\n const exact = collectExtensionFlagDefinitionsForCommand(registrations, commandPath);\n const pathParts = [commandPath];\n let nestedMatch: Array<Record<string, unknown>> = [];\n for (const arg of commandArgs) {\n if (arg.startsWith(\"-\")) {\n break;\n }\n pathParts.push(arg);\n const nested = collectExtensionFlagDefinitionsForCommand(registrations, pathParts.join(\" \"));\n if (nested.length > 0) {\n nestedMatch = nested;\n }\n }\n return nestedMatch.length > 0 ? nestedMatch : exact;\n}\n\nconst RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH: Readonly<Record<string, RuntimeFieldCommand>> = {\n create: \"create\",\n update: \"update\",\n \"update-many\": \"update_many\",\n list: \"list\",\n \"list-all\": \"list\",\n \"list-draft\": \"list\",\n \"list-open\": \"list\",\n \"list-in-progress\": \"list\",\n \"list-blocked\": \"list\",\n \"list-closed\": \"list\",\n \"list-canceled\": \"list\",\n search: \"search\",\n calendar: \"calendar\",\n context: \"context\",\n \"templates save\": \"create\",\n};\n\nconst runtimeFieldLooseFlagDefinitionCache = new Map<string, Array<Record<string, unknown>>>();\n\nfunction toLooseFieldDefinitionType(fieldType: string): \"string\" | \"number\" | \"boolean\" {\n if (fieldType === \"number\") {\n return \"number\";\n }\n if (fieldType === \"boolean\") {\n return \"boolean\";\n }\n return \"string\";\n}\n\nfunction commandHasLongOption(command: Command, longFlag: string): boolean {\n return command.options.some((option) => option.long === longFlag);\n}\n\nfunction commandHasShortOption(command: Command, shortFlag: string): boolean {\n return command.options.some((option) => option.short === shortFlag);\n}\n\nfunction addRuntimeFieldOption(command: Command, flagToken: string, description: string, repeatable: boolean): void {\n const normalizedToken = flagToken.trim();\n if (!normalizedToken) {\n return;\n }\n const helpText = description.length > 0 ? description : `Runtime schema field (${flagToken})`;\n if (normalizedToken.startsWith(\"-\") && !normalizedToken.startsWith(\"--\")) {\n if (commandHasShortOption(command, normalizedToken)) {\n return;\n }\n if (repeatable) {\n command.option(`${normalizedToken} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${normalizedToken} <value>`, helpText);\n return;\n }\n const longFlag = normalizedToken.startsWith(\"--\") ? normalizedToken : `--${normalizedToken}`;\n if (commandHasLongOption(command, longFlag)) {\n return;\n }\n if (repeatable) {\n command.option(`${longFlag} <value>`, `${helpText} (repeatable)`, collect);\n return;\n }\n command.option(`${longFlag} <value>`, helpText);\n}\n\nasync function collectRuntimeFieldLooseFlagDefinitionsForCommand(\n commandPath: string,\n pmRoot: string,\n): Promise<Array<Record<string, unknown>>> {\n const runtimeCommand = RUNTIME_FIELD_COMMAND_BY_COMMAND_PATH[commandPath];\n if (!runtimeCommand) {\n return [];\n }\n const cacheKey = `${pmRoot}:${runtimeCommand}`;\n const cached = runtimeFieldLooseFlagDefinitionCache.get(cacheKey);\n if (cached) {\n return cached;\n }\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, []);\n return [];\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const definitions = (fieldRegistry.command_to_fields.get(runtimeCommand) ?? []).flatMap((field) => {\n const flagTokens = [field.cli_flag, ...field.cli_aliases];\n return flagTokens.map((token) => ({\n long: `--${token}`,\n type: toLooseFieldDefinitionType(field.type),\n value_type: toLooseFieldDefinitionType(field.type),\n }));\n });\n runtimeFieldLooseFlagDefinitionCache.set(cacheKey, definitions);\n return definitions;\n}\n\nasync function registerRuntimeSchemaFieldFlags(rootProgram: Command, invocationArgv: string[]): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(invocationArgv);\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n return;\n }\n const settings = await readSettings(pmRoot);\n const fieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const mappings: Array<{ path: string; command: RuntimeFieldCommand }> = [\n { path: \"create\", command: \"create\" },\n { path: \"update\", command: \"update\" },\n { path: \"update-many\", command: \"update_many\" },\n { path: \"list\", command: \"list\" },\n { path: \"list-all\", command: \"list\" },\n { path: \"list-draft\", command: \"list\" },\n { path: \"list-open\", command: \"list\" },\n { path: \"list-in-progress\", command: \"list\" },\n { path: \"list-blocked\", command: \"list\" },\n { path: \"list-closed\", command: \"list\" },\n { path: \"list-canceled\", command: \"list\" },\n { path: \"search\", command: \"search\" },\n { path: \"calendar\", command: \"calendar\" },\n { path: \"context\", command: \"context\" },\n { path: \"templates save\", command: \"create\" },\n ];\n for (const mapping of mappings) {\n const command = findCommandByPath(rootProgram, mapping.path.split(\" \"));\n if (!command) {\n continue;\n }\n for (const field of fieldRegistry.command_to_fields.get(mapping.command) ?? []) {\n const description = field.description ?? \"\";\n addRuntimeFieldOption(command, field.cli_flag, description, field.repeatable);\n for (const alias of field.cli_aliases) {\n addRuntimeFieldOption(command, alias, `Alias for --${field.cli_flag}`, field.repeatable);\n }\n }\n }\n}\n\nfunction defaultPreflightDecision(): PreflightRuntimeDecision {\n return {\n enforce_item_format_gate: true,\n run_preflight_item_format_sync: true,\n run_extension_migrations: true,\n enforce_mandatory_migration_gate: true,\n };\n}\n\nfunction buildRuntimeExtensionSnapshotCacheKey(pmRoot: string): string {\n return `pm-root:${pmRoot}`;\n}\n\nfunction emitExtensionProfile(globalOptions: GlobalOptions, snapshot: RuntimeExtensionSnapshot): void {\n if (!globalOptions.profile) {\n return;\n }\n printError(\n `profile:extensions loaded=${snapshot.loadedCount} failed=${snapshot.loadFailedCount} warnings=${snapshot.loadWarnings.length} activation_failed=${snapshot.activationFailedCount} hook_counts=before:${snapshot.hooks.beforeCommand.length}|after:${snapshot.hooks.afterCommand.length}|write:${snapshot.hooks.onWrite.length}|read:${snapshot.hooks.onRead.length}|index:${snapshot.hooks.onIndex.length} command_overrides=${snapshot.commands.overrides.length} command_handlers=${snapshot.commands.handlers.length} parser_overrides=${snapshot.parsers.overrides.length} preflight_overrides=${snapshot.preflight.overrides.length} service_overrides=${snapshot.services.overrides.length} renderer_overrides=${snapshot.renderers.overrides.length}`,\n );\n if (snapshot.activationWarnings.length > 0) {\n printError(`profile:extensions activation_warnings=${formatHookWarnings(snapshot.activationWarnings)}`);\n }\n}\n\nasync function loadRuntimeExtensionSnapshot(pmRoot: string): Promise<RuntimeExtensionSnapshot | null> {\n const cacheKey = buildRuntimeExtensionSnapshotCacheKey(pmRoot);\n if (runtimeExtensionSnapshotCache?.key === cacheKey) {\n return runtimeExtensionSnapshotCache.snapshot;\n }\n\n const settingsPath = getSettingsPath(pmRoot);\n if (!(await pathExists(settingsPath))) {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n\n try {\n const settings = await readSettings(pmRoot);\n const loadResult = await loadExtensions({\n pmRoot,\n settings,\n cwd: process.cwd(),\n noExtensions: false,\n });\n const activationResult = await activateExtensions({\n ...loadResult,\n loaded: loadResult.loaded,\n });\n const commandHandlers = [...new Set(activationResult.commands.handlers.map((entry) => normalizeExtensionCommandPath(entry.command)))]\n .filter((entry) => entry.length > 0)\n .sort((left, right) => left.localeCompare(right));\n const commandFlagHelp = collectDynamicExtensionFlagHelpByCommand(activationResult.registrations.flags);\n const commandDescriptors = collectExtensionCommandHelpDescriptors(\n commandHandlers,\n activationResult.registrations.commands,\n activationResult.registrations.flags,\n );\n const snapshot: RuntimeExtensionSnapshot = {\n hooks: activationResult.hooks,\n commands: activationResult.commands,\n parsers: activationResult.parsers,\n preflight: activationResult.preflight,\n services: activationResult.services,\n renderers: activationResult.renderers,\n registrations: activationResult.registrations,\n pmRoot,\n settings,\n commandHandlers,\n commandFlagHelp,\n commandDescriptors,\n loadWarnings: [...loadResult.warnings],\n activationWarnings: [...activationResult.warnings],\n loadedCount: loadResult.loaded.length,\n loadFailedCount: loadResult.failed.length,\n activationFailedCount: activationResult.failed.length,\n };\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot,\n };\n return snapshot;\n } catch {\n runtimeExtensionSnapshotCache = {\n key: cacheKey,\n snapshot: null,\n };\n return null;\n }\n}\n\nasync function maybeLoadRuntimeExtensions(\n command: Command,\n): Promise<\n {\n hooks: ExtensionHookRegistry;\n commands: ExtensionCommandRegistry;\n parsers: ExtensionParserRegistry;\n preflight: ExtensionPreflightRegistry;\n services: ExtensionServiceRegistry;\n renderers: ExtensionRendererRegistry;\n registrations: ReturnType<typeof createEmptyExtensionRegistrationRegistry>;\n pmRoot: string;\n } | null\n> {\n const globalOptions = getGlobalOptions(command);\n if (globalOptions.noExtensions) {\n return null;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n return null;\n }\n\n emitExtensionProfile(globalOptions, snapshot);\n return {\n hooks: snapshot.hooks,\n commands: snapshot.commands,\n parsers: snapshot.parsers,\n preflight: snapshot.preflight,\n services: snapshot.services,\n renderers: snapshot.renderers,\n registrations: snapshot.registrations,\n pmRoot,\n };\n}\n\nasync function executeRegisteredRuntimeMigrations(\n migrations: RegisteredExtensionSchemaMigrationDefinition[],\n pmRoot: string,\n): Promise<string[]> {\n const warnings: string[] = [];\n for (let index = 0; index < migrations.length; index += 1) {\n const migration = migrations[index];\n const status = resolveNormalizedMigrationStatus(migration.definition);\n if (status === \"applied\") {\n continue;\n }\n\n const runtimeDefinition = migration.runtime_definition ?? migration.definition;\n const run = (runtimeDefinition as { run?: unknown }).run;\n if (typeof run !== \"function\") {\n continue;\n }\n\n const migrationId = resolveMigrationId(migration.definition, index);\n try {\n await Promise.resolve(\n run({\n id: migrationId,\n command: \"migration\",\n layer: migration.layer,\n extension: migration.name,\n pm_root: pmRoot,\n status,\n }),\n );\n migration.definition.status = \"applied\";\n delete migration.definition.reason;\n delete migration.definition.error;\n delete migration.definition.message;\n } catch (error: unknown) {\n migration.definition.status = \"failed\";\n migration.definition.reason = describeUnknownError(error);\n warnings.push(`extension_migration_failed:${migration.layer}:${migration.name}:${migrationId}`);\n }\n }\n return warnings;\n}\n\nasync function runRequiredExtensionCommand(\n command: Command,\n options: Record<string, unknown>,\n globalOptions: GlobalOptions,\n): Promise<unknown> {\n const commandPath = getCommandPath(command);\n let commandArgs = command.args.map(String);\n let commandOptions = { ...options };\n let resolvedGlobalOptions = { ...globalOptions };\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n resolvedGlobalOptions = parserOverride.context.global;\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...resolvedGlobalOptions },\n pm_root: pmRoot,\n });\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: resolvedGlobalOptions,\n pm_root: pmRoot,\n });\n if (resolvedGlobalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (!extensionCommandResult.handled) {\n if (extensionCommandResult.warnings.length > 0) {\n const warningCode = extensionCommandResult.warnings[0];\n const cause = extensionCommandResult.errorMessage?.trim();\n const causeSuffix = cause ? ` ${cause}` : \"\";\n throw new PmCliError(\n `Command \"${commandPath}\" failed in extension handler (${warningCode}).${causeSuffix}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n throw new PmCliError(`Command \"${commandPath}\" is provided by extensions and is not currently available.`, EXIT_CODE.NOT_FOUND);\n }\n setActiveCommandResult(extensionCommandResult.result);\n return extensionCommandResult.result;\n}\n\nconst WRAPPED_ACTION_HANDLER = Symbol(\"pm.wrappedActionHandler\");\n\nfunction wrapProgramActionsForExtensionHandlers(rootProgram: Command): void {\n const visit = (entry: Command): void => {\n type ActionMutableCommand = Command & {\n _actionHandler?: (...args: unknown[]) => unknown;\n [WRAPPED_ACTION_HANDLER]?: boolean;\n };\n const actionEntry = entry as ActionMutableCommand;\n if (typeof actionEntry._actionHandler === \"function\" && actionEntry[WRAPPED_ACTION_HANDLER] !== true) {\n const originalAction = actionEntry._actionHandler;\n actionEntry._actionHandler = async function wrappedActionHandler(this: unknown, ...actionArgs: unknown[]): Promise<unknown> {\n const possibleCommand = actionArgs[actionArgs.length - 1];\n const actionCommand = possibleCommand instanceof Command ? possibleCommand : entry;\n const startedAt = Date.now();\n clearResolvedGlobalOptions(actionCommand);\n let globalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);\n let commandArgs = actionCommand.args.map(String);\n const activeRegistrations = getActiveExtensionRegistrations();\n const extensionFlagDefinitions = activeRegistrations\n ? collectExtensionFlagDefinitionsForInvocation(activeRegistrations, commandPath, commandArgs)\n : [];\n const runtimeFieldFlagDefinitions = await collectRuntimeFieldLooseFlagDefinitionsForCommand(commandPath, pmRoot);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, [\n ...extensionFlagDefinitions,\n ...runtimeFieldFlagDefinitions,\n ]);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n globalOptions = await applyDefaultOutputFormat(globalOptions);\n setResolvedGlobalOptions(actionCommand, globalOptions);\n actionCommand.args = [...commandArgs];\n if (\"_processArguments\" in actionCommand && typeof actionCommand._processArguments === \"function\") {\n actionCommand._processArguments();\n }\n if (actionArgs.length > 0 && Array.isArray(actionArgs[0])) {\n actionArgs[0] = [...actionCommand.processedArgs];\n }\n for (const [key, value] of Object.entries(commandOptions)) {\n actionCommand.setOptionValueWithSource(key, value, \"cli\");\n }\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: pmRoot,\n });\n\n const extensionCommandResult = await runActiveCommandHandler({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: pmRoot,\n });\n if (globalOptions.profile && extensionCommandResult.warnings.length > 0) {\n printError(`profile:extensions command_handler_warnings=${formatHookWarnings(extensionCommandResult.warnings)}`);\n }\n if (extensionCommandResult.handled) {\n setActiveCommandResult(extensionCommandResult.result);\n printResult(extensionCommandResult.result, {\n ...globalOptions,\n command: commandPath,\n commandArgs,\n commandOptions,\n pmRoot,\n });\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n return;\n }\n\n return await originalAction.apply(this, actionArgs);\n };\n actionEntry[WRAPPED_ACTION_HANDLER] = true;\n }\n for (const child of entry.commands) {\n visit(child);\n }\n };\n visit(rootProgram);\n}\n\nasync function registerDynamicExtensionCommandPaths(rootProgram: Command, invocationArgv: string[]): Promise<void> {\n const bootstrapGlobalOptions = parseBootstrapGlobalOptions(invocationArgv);\n if (bootstrapGlobalOptions.noExtensions) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n\n const pmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const snapshot = await loadRuntimeExtensionSnapshot(pmRoot);\n if (!snapshot) {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n return;\n }\n // Ensure usage/help/error formatting overrides are available even when parse\n // errors occur before preAction hooks initialize full runtime extension state.\n setActiveExtensionServices(snapshot.services);\n activeRuntimeExtensionCommandDescriptors = new Map(snapshot.commandDescriptors);\n const typeRegistry = resolveItemTypeRegistry(snapshot.settings, snapshot.registrations);\n attachCreateUpdatePolicyHelpText(rootProgram, typeRegistry, invocationArgv);\n\n const commandPaths = [...new Set([...snapshot.commandHandlers, ...snapshot.commandDescriptors.keys()])].sort((left, right) =>\n left.localeCompare(right),\n );\n for (const commandPath of commandPaths) {\n const pathParts = commandPath.split(\" \").filter((part) => part.length > 0);\n if (pathParts.length === 0) {\n continue;\n }\n const descriptor = snapshot.commandDescriptors.get(commandPath);\n const existingCommand = findCommandByPath(rootProgram, pathParts);\n const flagHelp = snapshot.commandFlagHelp.get(commandPath);\n const metadataHelp = descriptor ? buildDynamicExtensionCommandMetadataHelp(descriptor) : null;\n if (existingCommand) {\n if (flagHelp) {\n existingCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n existingCommand.addHelpText(\"after\", metadataHelp);\n }\n continue;\n }\n\n const dynamicCommand = ensureCommandPath(rootProgram, pathParts);\n if (!dynamicCommand) {\n continue;\n }\n if (descriptor?.description) {\n dynamicCommand.description(descriptor.description);\n }\n if (descriptor) {\n applyDynamicExtensionArguments(dynamicCommand, descriptor);\n }\n if (flagHelp) {\n dynamicCommand.addHelpText(\"after\", flagHelp);\n }\n if (metadataHelp) {\n dynamicCommand.addHelpText(\"after\", metadataHelp);\n }\n\n dynamicCommand\n .allowUnknownOption(true)\n .allowExcessArguments(true)\n .action(async (...actionArgs: unknown[]) => {\n const maybeCommand = actionArgs[actionArgs.length - 1];\n const command = maybeCommand instanceof Command ? maybeCommand : dynamicCommand;\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForInvocation(\n snapshot.registrations,\n commandPath,\n command.args.map(String),\n );\n const scopedOptions = extractCommandScopedOptions(\n command,\n command.args.map(String),\n extensionFlagDefinitions,\n );\n const result = await runRequiredExtensionCommand(command, scopedOptions, globalOptions);\n await invalidateSearchCachesForMutation(globalOptions, result);\n printResult(result, {\n ...globalOptions,\n command: commandPath,\n commandArgs: command.args.map(String),\n commandOptions: scopedOptions,\n pmRoot,\n });\n if (globalOptions.profile) {\n printError(`profile:command=${commandPath} took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n}\n\nfunction resolveCliVersion(): string {\n try {\n const packageJsonPath = path.join(resolvePmPackageRoot(), \"package.json\");\n const raw = fs.readFileSync(packageJsonPath, \"utf8\");\n const parsed = JSON.parse(raw) as { version?: unknown };\n return typeof parsed.version === \"string\" ? parsed.version : \"0.0.0\";\n } catch {\n return \"0.0.0\";\n }\n}\n\nconst CLI_VERSION = resolveCliVersion();\n\nconst program = new Command();\nprogram\n .name(\"pm\")\n .description(\"Universal, flexible, extensible, agent-optimized project management CLI for any project or programming language.\")\n .version(CLI_VERSION)\n .showHelpAfterError(false)\n .allowExcessArguments(false)\n .allowUnknownOption(false)\n .configureOutput({\n writeOut: (str) => {\n writeStdout(str);\n },\n // Commander errors are rendered in our own catch path.\n writeErr: () => {},\n })\n .option(\"--json\", \"Output JSON instead of TOON\")\n .option(\"--quiet\", \"Suppress stdout output\")\n .option(\"--no-changed-fields\", \"Omit the changed_fields array from mutation output (keeps changed_field_count)\")\n .option(\"--path <dir>\", \"Override PM path for this command\")\n .option(\"--no-extensions\", \"Disable extension loading\")\n .option(\"--no-pager\", \"Disable pager integration for help and long output\")\n .option(\"--explain\", \"Render extended rationale and examples in help output\")\n .option(\"--profile\", \"Print deterministic timing diagnostics\")\n .exitOverride();\n\nprogram.hook(\"preAction\", async (_thisCommand, actionCommand) => {\n activeExtensionHookContext = null;\n activeTelemetryCommandContext = null;\n clearActiveExtensionHooks();\n clearResolvedGlobalOptions(actionCommand);\n const bootstrapGlobalOptions = getGlobalOptions(actionCommand);\n const commandPath = getCommandPath(actionCommand);\n let commandArgs = actionCommand.args.map(String);\n let commandOptions = extractCommandScopedOptions(actionCommand, commandArgs);\n let globalOptions = { ...bootstrapGlobalOptions };\n await maybeRunFirstUseTelemetryPrompt(commandPath, globalOptions);\n const fallbackPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobalOptions.path);\n const runtimeExtensions = await maybeLoadRuntimeExtensions(actionCommand);\n if (!runtimeExtensions) {\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: fallbackPmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n fallbackPmRoot,\n defaultPreflightDecision(),\n );\n return;\n }\n\n setActiveExtensionHooks(runtimeExtensions.hooks);\n setActiveExtensionCommands(runtimeExtensions.commands);\n setActiveExtensionParsers(runtimeExtensions.parsers);\n setActiveExtensionPreflight(runtimeExtensions.preflight);\n setActiveExtensionServices(runtimeExtensions.services);\n setActiveExtensionRenderers(runtimeExtensions.renderers);\n setActiveExtensionRegistrations(runtimeExtensions.registrations);\n\n const extensionFlagDefinitions = collectExtensionFlagDefinitionsForInvocation(\n runtimeExtensions.registrations,\n commandPath,\n commandArgs,\n );\n commandOptions = extractCommandScopedOptions(actionCommand, commandArgs, extensionFlagDefinitions);\n const parserOverride = await runActiveParserOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && parserOverride.warnings.length > 0) {\n printError(`profile:extensions parser_warnings=${formatHookWarnings(parserOverride.warnings)}`);\n }\n commandArgs = parserOverride.context.args;\n commandOptions = parserOverride.context.options;\n globalOptions = parserOverride.context.global;\n\n const preflightOverride = await runActivePreflightOverride({\n command: commandPath,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n decision: defaultPreflightDecision(),\n });\n if (globalOptions.profile && preflightOverride.warnings.length > 0) {\n printError(`profile:extensions preflight_warnings=${formatHookWarnings(preflightOverride.warnings)}`);\n }\n commandArgs = preflightOverride.context.args;\n commandOptions = preflightOverride.context.options;\n globalOptions = preflightOverride.context.global;\n const preflightDecision = preflightOverride.decision;\n\n await enforceItemFormatWriteGateAndPreflightMigration(\n commandPath,\n commandOptions,\n runtimeExtensions.pmRoot,\n preflightDecision,\n );\n\n const migrationWarnings = preflightDecision.run_extension_migrations\n ? await executeRegisteredRuntimeMigrations(runtimeExtensions.registrations.migrations, runtimeExtensions.pmRoot)\n : [];\n if (globalOptions.profile && migrationWarnings.length > 0) {\n printError(`profile:extensions migration_warnings=${formatHookWarnings(migrationWarnings)}`);\n }\n const migrationBlockers = collectMandatoryMigrationBlockers(runtimeExtensions.registrations.migrations);\n activeExtensionHookContext = {\n hooks: runtimeExtensions.hooks,\n commandName: commandPath,\n commandArgs,\n commandOptions: { ...commandOptions },\n globalOptions: { ...globalOptions },\n pmRoot: runtimeExtensions.pmRoot,\n profileEnabled: Boolean(globalOptions.profile),\n migrationBlockers,\n };\n setActiveCommandResult(undefined);\n setActiveCommandContext({\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n activeTelemetryCommandContext = await startTelemetryCommand({\n command: commandPath,\n pm_version: CLI_VERSION,\n args: commandArgs,\n options: commandOptions,\n global: globalOptions,\n pm_root: runtimeExtensions.pmRoot,\n });\n sentrySetCommandContext(commandPath, commandArgs, commandOptions, {\n source_context: activeTelemetryCommandContext?.source_context,\n source_context_source: activeTelemetryCommandContext?.source_context_source,\n });\n sentryStartCommandSpan(commandPath);\n\n const hookWarnings = await runBeforeCommandHooks(runtimeExtensions.hooks, {\n command: commandPath,\n args: commandArgs,\n options: { ...commandOptions },\n global: { ...globalOptions },\n pm_root: runtimeExtensions.pmRoot,\n });\n if (globalOptions.profile && hookWarnings.length > 0) {\n printError(`profile:extensions hook_warnings=${formatHookWarnings(hookWarnings)}`);\n }\n if (preflightDecision.enforce_mandatory_migration_gate) {\n enforceMandatoryMigrationWriteGate(commandPath, commandOptions, migrationBlockers);\n }\n});\n\nprogram.hook(\"postAction\", async () => {\n const outcome = buildPostActionTelemetryOutcome();\n sentryFinishCommandSpan(outcome.ok, outcome.error, {\n error_code: outcome.error_code,\n error_category: outcome.error_category,\n exit_code: outcome.exit_code,\n command_resolution: outcome.command_resolution,\n resolution_stage: outcome.resolution_stage,\n });\n await runAndClearAfterCommandHooks(outcome);\n});\n\nconst VERSION_FLAG_TOKENS = new Set([\"--version\", \"-V\"]);\nconst SETUP_COMMAND_NAMES = new Set([\n \"config\",\n \"extension\",\n \"init\",\n \"install\",\n \"package\",\n \"packages\",\n \"templates\",\n \"upgrade\",\n]);\nconst LIST_QUERY_COMMAND_NAMES = new Set([\n \"activity\",\n \"aggregate\",\n \"context\",\n \"ctx\",\n \"get\",\n \"history\",\n \"list\",\n \"list-all\",\n \"list-blocked\",\n \"list-canceled\",\n \"list-closed\",\n \"list-draft\",\n \"list-in-progress\",\n \"list-open\",\n \"search\",\n]);\nconst MUTATION_COMMAND_NAMES = new Set([\n \"append\",\n \"close\",\n \"comments\",\n \"delete\",\n \"deps\",\n \"discover\",\n \"docs\",\n \"files\",\n \"learnings\",\n \"notes\",\n \"plan\",\n \"restore\",\n \"update\",\n \"update-many\",\n \"create\",\n]);\nconst OPERATION_COMMAND_NAMES = new Set([\n \"claim\",\n \"close-task\",\n \"contracts\",\n \"gc\",\n \"health\",\n \"pause-task\",\n \"release\",\n \"start-task\",\n \"stats\",\n \"test\",\n \"test-all\",\n \"test-runs\",\n \"test-runs-worker\",\n \"validate\",\n]);\ninterface CoreCommandRegistrationSelection {\n setup: boolean;\n listQuery: boolean;\n mutation: boolean;\n operation: boolean;\n targetCommandName?: string;\n}\nconst REGISTER_ALL_CORE_COMMAND_FAMILIES: CoreCommandRegistrationSelection = {\n setup: true,\n listQuery: true,\n mutation: true,\n operation: true,\n};\n\nconst RUNTIME_SCHEMA_FLAG_BOOTSTRAP_COMMANDS = new Set([\n \"create\",\n \"update\",\n \"update-many\",\n \"list\",\n \"list-all\",\n \"list-draft\",\n \"list-open\",\n \"list-in-progress\",\n \"list-blocked\",\n \"list-closed\",\n \"list-canceled\",\n \"search\",\n \"calendar\",\n \"context\",\n \"templates\",\n]);\n\nfunction invocationRequestsVersion(invocationArgv: string[]): boolean {\n return invocationArgv.some((token) => VERSION_FLAG_TOKENS.has(token));\n}\n\nfunction resolveCoreCommandRegistrationSelection(\n invocationArgv: string[],\n): CoreCommandRegistrationSelection {\n if (invocationRequestsVersion(invocationArgv)) {\n return {\n setup: false,\n listQuery: false,\n mutation: false,\n operation: false,\n };\n }\n if (\n invocationArgv.length === 0 ||\n parseBootstrapHelpRequest(invocationArgv).requested\n ) {\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n }\n const normalizedCommand = commandName.trim().toLowerCase();\n if (SETUP_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: true,\n listQuery: false,\n mutation: false,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (LIST_QUERY_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: true,\n mutation: false,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (MUTATION_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: false,\n mutation: true,\n operation: false,\n targetCommandName: normalizedCommand,\n };\n }\n if (OPERATION_COMMAND_NAMES.has(normalizedCommand)) {\n return {\n setup: false,\n listQuery: false,\n mutation: false,\n operation: true,\n targetCommandName: normalizedCommand,\n };\n }\n return REGISTER_ALL_CORE_COMMAND_FAMILIES;\n}\n\nfunction shouldAttachRichHelpTextForInvocation(invocationArgv: string[]): boolean {\n return (\n invocationArgv.length === 0 ||\n parseBootstrapHelpRequest(invocationArgv).requested\n );\n}\n\nasync function registerCoreCommandFamilies(\n rootProgram: Command,\n selection: CoreCommandRegistrationSelection,\n): Promise<void> {\n if (selection.setup) {\n const { registerSetupCommands } = await loadSetupRegistrationModule();\n registerSetupCommands(rootProgram);\n }\n if (selection.listQuery) {\n const { registerListQueryCommands } =\n await loadListQueryRegistrationModule();\n const commandFilter =\n typeof selection.targetCommandName === \"string\" &&\n LIST_QUERY_COMMAND_NAMES.has(selection.targetCommandName)\n ? new Set([selection.targetCommandName])\n : undefined;\n registerListQueryCommands(rootProgram, commandFilter ? { commandFilter } : undefined);\n }\n if (selection.mutation) {\n const { registerMutationCommands } = await loadMutationRegistrationModule();\n registerMutationCommands(rootProgram);\n }\n if (selection.operation) {\n const { registerOperationCommands } = await loadOperationRegistrationModule();\n registerOperationCommands(rootProgram);\n }\n}\n\nfunction isKnownTopLevelCommandOrAlias(rootProgram: Command, commandName: string): boolean {\n const normalized = commandName.trim().toLowerCase();\n for (const command of rootProgram.commands) {\n if (command.name().trim().toLowerCase() === normalized) {\n return true;\n }\n if (command.aliases().some((alias) => alias.trim().toLowerCase() === normalized)) {\n return true;\n }\n }\n return false;\n}\n\nfunction shouldRegisterDynamicExtensionPaths(rootProgram: Command, invocationArgv: string[]): boolean {\n if (invocationRequestsVersion(invocationArgv)) {\n return false;\n }\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested) {\n return true;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return false;\n }\n return !isKnownTopLevelCommandOrAlias(rootProgram, commandName);\n}\n\nfunction shouldRegisterRuntimeSchemaFlags(invocationArgv: string[]): boolean {\n if (invocationRequestsVersion(invocationArgv)) {\n return false;\n }\n const commandName = parseBootstrapCommandName(invocationArgv);\n if (!commandName) {\n return false;\n }\n return RUNTIME_SCHEMA_FLAG_BOOTSTRAP_COMMANDS.has(commandName);\n}\n\nexport async function runPmCli(rawArgv: string[] = process.argv.slice(2)): Promise<void> {\n const bootstrapInvocation = normalizeBootstrapInvocation(rawArgv);\n const invocationArgv = bootstrapInvocation.argv;\n const invocationProcessArgv = [process.argv[0], process.argv[1], ...invocationArgv];\n const isBareInvocation = invocationArgv.length === 0;\n try {\n applyBootstrapPagerPolicy(invocationArgv);\n const registrationSelection =\n resolveCoreCommandRegistrationSelection(invocationArgv);\n await registerCoreCommandFamilies(program, registrationSelection);\n if (shouldAttachRichHelpTextForInvocation(invocationArgv)) {\n attachRichHelpText(program, invocationArgv);\n }\n const registerDynamicCommands = shouldRegisterDynamicExtensionPaths(program, invocationArgv);\n if (registerDynamicCommands) {\n await registerDynamicExtensionCommandPaths(program, invocationArgv);\n } else {\n activeRuntimeExtensionCommandDescriptors = new Map<string, ExtensionCommandHelpDescriptor>();\n setActiveExtensionServices({ overrides: [] });\n }\n if (shouldRegisterRuntimeSchemaFlags(invocationArgv)) {\n await registerRuntimeSchemaFieldFlags(program, invocationArgv);\n }\n wrapProgramActionsForExtensionHandlers(program);\n const renderedBootstrapJsonHelp = await maybeRenderBootstrapJsonHelp(program, invocationArgv, activeRuntimeExtensionCommandDescriptors);\n if (renderedBootstrapJsonHelp) {\n return;\n }\n if (isBareInvocation) {\n program.outputHelp();\n return;\n }\n await program.parseAsync(invocationProcessArgv);\n } catch (error: unknown) {\n const bootstrapGlobal = parseBootstrapGlobalOptions(invocationArgv);\n const jsonErrors = bootstrapGlobal.json;\n const bootstrapPmRoot = resolvePmRoot(process.cwd(), bootstrapGlobal.path);\n const attemptedCommand = parseBootstrapCommandName(invocationArgv) ?? \"<unknown>\";\n\n const emitTelemetryCommandError = async (params: {\n command: string;\n errorCode: string;\n errorMessage: string;\n exitCode: number;\n options: Record<string, unknown>;\n resolutionStage: TelemetryResolutionStage;\n }) => {\n const errorCategory = resolveTelemetryErrorCategory(params.errorCode);\n const commandResolution = deriveTelemetryCommandResolution({\n ok: false,\n errorCode: params.errorCode,\n errorCategory,\n });\n await emitTelemetryErrorEvent({\n command: params.command,\n args: invocationArgv,\n options: params.options,\n global: bootstrapGlobal,\n pm_version: CLI_VERSION,\n pm_root: bootstrapPmRoot,\n error_code: params.errorCode,\n error_message: params.errorMessage,\n exit_code: params.exitCode,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: params.resolutionStage,\n });\n return {\n errorCategory,\n commandResolution,\n };\n };\n\n if (!bootstrapGlobal.noExtensions) {\n const bootstrapSnapshot = await loadRuntimeExtensionSnapshot(bootstrapPmRoot);\n setActiveExtensionServices(bootstrapSnapshot?.services ?? { overrides: [] });\n }\n\n const numericExitCode = readThrownExitCode(error);\n if (\n error instanceof PmCliError ||\n (!isCommanderError(error) && typeof numericExitCode === \"number\" && Number.isFinite(numericExitCode))\n ) {\n const errorMessage = describeUnknownError(error);\n const exitCode = error instanceof PmCliError ? error.exitCode : normalizeThrownExitCode(numericExitCode as number);\n const context = error instanceof PmCliError ? error.context : undefined;\n const enrichedContext = buildPmCliRecoveryContext(context, invocationArgv, errorMessage);\n const classification = classifyPmCliError(errorMessage, enrichedContext);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n const loggedHandledErrorToSentry = await maybeLogHandledCliErrorToSentry({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: exitCode,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n sentryFinishCommandSpan(false, errorMessage, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: exitCode,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: errorMessage,\n exit_code: exitCode,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n sentryCaptureCliError(wrapThrownErrorForSentry(error, errorMessage));\n if (jsonErrors) {\n printError(JSON.stringify(formatPmCliErrorForJson(errorMessage, exitCode, enrichedContext), null, 2));\n } else {\n printError(formatPmCliErrorForDisplay(errorMessage, enrichedContext));\n }\n if (loggedHandledErrorToSentry) {\n await sentryFlush(HANDLED_ERROR_SENTRY_FLUSH_TIMEOUT_MS);\n }\n process.exitCode = exitCode;\n return;\n }\n\n if (typeof error === \"object\" && error !== null && \"code\" in error) {\n const code = (error as { code?: string }).code;\n const rawMessage = typeof (error as { message?: unknown }).message === \"string\" ? ((error as { message?: string }).message ?? \"\") : \"\";\n const isHelpDisplayCode =\n code === \"commander.helpDisplayed\" || code === \"commander.help\" || code === \"commander.helpCommand\";\n if (isHelpDisplayCode || rawMessage.includes(\"(outputHelp)\")) {\n const helpRequest = parseBootstrapHelpRequest(invocationArgv);\n if (helpRequest.requested && !isKnownHelpCommandPath(program, helpRequest.commandPathTokens)) {\n const unknownToken = helpRequest.commandPathTokens[0] ?? parseBootstrapCommandName(invocationArgv) ?? \"<command>\";\n const unknownMessage = `unknown command '${unknownToken}'`;\n const usageContext = await resolveCommanderUsageContext(\n { message: unknownMessage },\n program,\n activeRuntimeExtensionCommandDescriptors,\n );\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: unknownToken,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code ?? \"commander.helpDisplayed\",\n },\n resolutionStage: \"parse\",\n });\n const loggedHandledErrorToSentry = await maybeLogHandledCliErrorToSentry({\n command: unknownToken,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage({ message: unknownMessage }, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, unknownMessage, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: unknownMessage,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n if (loggedHandledErrorToSentry) {\n await sentryFlush(HANDLED_ERROR_SENTRY_FLUSH_TIMEOUT_MS);\n }\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code === \"commander.version\") {\n sentryFinishCommandSpan(true, undefined, {\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: true,\n exit_code: EXIT_CODE.SUCCESS,\n command_resolution: \"success\",\n resolution_stage: \"parse\",\n });\n process.exitCode = EXIT_CODE.SUCCESS;\n return;\n }\n if (code?.startsWith(\"commander.\")) {\n const usageContext = await resolveCommanderUsageContext(error, program, activeRuntimeExtensionCommandDescriptors);\n const classification = classifyCommanderError(\n usageContext.message,\n usageContext.commandName,\n usageContext.allowedTypes,\n {\n unknownCommandExamples: usageContext.unknownCommandExamples,\n unknownCommandNextSteps: usageContext.unknownCommandNextSteps,\n attemptedCommand: usageContext.attemptedCommand,\n normalizedInvocationArgs: usageContext.normalizedInvocationArgs,\n providedOptionFlags: usageContext.providedOptionFlags,\n unknownOptionSuggestions: usageContext.unknownOptionSuggestions,\n suggestedRetryCommand: usageContext.suggestedRetryCommand,\n },\n );\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.USAGE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n commander_code: code,\n },\n resolutionStage: \"parse\",\n });\n const loggedHandledErrorToSentry = await maybeLogHandledCliErrorToSentry({\n command: attemptedCommand,\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n error_message: classification.detail,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n source_context: activeTelemetryCommandContext?.source_context,\n });\n const renderedUsage = jsonErrors\n ? await formatCommanderUsageJson(error, program, activeRuntimeExtensionCommandDescriptors)\n : await formatCommanderUsageMessage(error, program, activeRuntimeExtensionCommandDescriptors);\n sentryFinishCommandSpan(false, usageContext.message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.USAGE,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: usageContext.message,\n exit_code: EXIT_CODE.USAGE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"parse\",\n });\n if (jsonErrors) {\n printError(renderedUsage);\n } else {\n printError(renderedUsage);\n }\n if (loggedHandledErrorToSentry) {\n await sentryFlush(HANDLED_ERROR_SENTRY_FLUSH_TIMEOUT_MS);\n }\n process.exitCode = EXIT_CODE.USAGE;\n return;\n }\n }\n\n await ensureSentryForErrorReporting();\n sentryCaptureCliError(error);\n const message = describeUnknownError(error);\n const classification = classifyUnknownError(message);\n const { errorCategory, commandResolution } = await emitTelemetryCommandError({\n command: attemptedCommand,\n errorCode: classification.code,\n errorMessage: classification.detail,\n exitCode: EXIT_CODE.GENERIC_FAILURE,\n options: {\n bootstrap_global_options: bootstrapGlobal,\n },\n resolutionStage: \"execute\",\n });\n sentryFinishCommandSpan(false, message, {\n error_code: classification.code,\n error_category: errorCategory,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n await runAndClearAfterCommandHooks({\n ok: false,\n error: message,\n exit_code: EXIT_CODE.GENERIC_FAILURE,\n error_code: classification.code,\n error_category: errorCategory,\n command_resolution: commandResolution,\n resolution_stage: \"execute\",\n });\n if (jsonErrors) {\n printError(JSON.stringify(formatUnknownErrorForJson(message, EXIT_CODE.GENERIC_FAILURE), null, 2));\n } else {\n printError(message);\n }\n await sentryFlush();\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n}\n\nexport const _testOnly = {\n isCommanderError,\n normalizeThrownExitCode,\n readThrownExitCode,\n shouldLogHandledErrorToSentry,\n wrapThrownErrorForSentry,\n};\n"],"names":[],"mappings":";;;AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAEzB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,GAS3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAA+B,MAAM,6BAA6B,CAAC;AACpH,OAAO,EAAE,UAAU,EAA0D,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,cAAc,EAA+B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gCAAgC,GAGjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EACL,4CAA4C,EAC5C,wBAAwB,EACxB,8CAA8C,GAC/C,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAEL,6BAA6B,EAC7B,wCAAwC,EACxC,sCAAsC,EACtC,8BAA8B,EAC9B,wCAAwC,EACxC,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,iCAAiC,EACjC,kCAAkC,EAClC,+CAA+C,EAC/C,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,SAAS,oBAAoB;IAC3B,OAAO,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAClH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,oBAAoB,EAAE,CAAC;AAC5D,CAAC;AAcD,IAAI,0BAA0B,GAAsC,IAAI,CAAC;AACzE,IAAI,6BAA6B,GAAkC,IAAI,CAAC;AAExE,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAA6B;IAC3E,SAAS;IACT,qBAAqB;IACrB,gBAAgB;IAChB,yBAAyB;IACzB,2BAA2B;IAC3B,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,UAAU;IACV,gBAAgB;IAChB,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACvH,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAsBhI,IAAI,6BAA6B,GAAsE,IAAI,CAAC;AAC5G,IAAI,wCAAwC,GAAG,IAAI,GAAG,EAA0C,CAAC;AACjG,MAAM,qCAAqC,GAAG,GAAG,CAAC;AAClD,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAS;IACxD,SAAS,CAAC,KAAK;IACf,SAAS,CAAC,SAAS;IACnB,SAAS,CAAC,QAAQ;CACnB,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAejE,MAAM,2BAA2B,GAAG,gBAAgB,CAA0B,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACnH,MAAM,+BAA+B,GAAG,gBAAgB,CAA8B,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAChI,MAAM,8BAA8B,GAAG,gBAAgB,CAA6B,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAC5H,MAAM,+BAA+B,GAAG,gBAAgB,CAA8B,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAEhI,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAI,KAAgC,CAAC,QAAQ,CAAC;IAC5D,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;AACjF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACrD,KAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,OAAe;IAC/D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAkC,CAAC;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAc;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,kCAAkC,CAAC,OAAe;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAsC,EACtC,cAAwB,EACxB,UAAkB;IAElB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,0BAA0B,CAAC,cAAc,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ,CAAC;IAC3C,MAAM,WAAW,GAAG,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC;IACnH,MAAM,YAAY,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC5G,MAAM,eAAe,GAAG,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,IAAI,cAAc,GAAG,gBAAgB,EAAE,eAAe,CAAC;IACvD,IAAI,CAAC,cAAc,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,iBAAiB,EAAE,CAAC;YACtB,cAAc,GAAG,sBAAsB,CAAC,CAAC,GAAG,cAAc,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,gBAAgB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;QACxC,cAAc,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAA8B;QAC1C,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,IAAI,gBAAgB;QAC1E,eAAe,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC,GAAG,cAAc,CAAC;QACzE,eAAe,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,eAAe;QACrD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;IACF,OAAO;QACL,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsC,EAAE,GAAG,IAAc;IACjF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsC,EAAE,GAAG,IAAc;IAClF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsC,EAAE,GAAG,IAAc;IACjF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mCAAmC,CAC1C,KAAyB;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,UAAwC,CAAC,EAAE,CAAC;QACpF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAwC,CAAC;AAClD,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAyB;IAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAsC,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAsC,CAAC;AAChD,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAyB;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,UAAoC,CAAC,EAAE,CAAC;QAC5E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAoC,CAAC;AAC9C,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAsC;IAC3E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpG,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,EAAE,wBAAwB,CAAC,CAAC;IAC1G,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,uCAAuC,CAAC;IACjD,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,eAAe,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,CAAC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC;QAClC,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,eAAe,UAAU,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAW,EAAE,QAAgB;IAC7D,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC7C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,+BAA+B;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACxD,MAAM,eAAe,GACnB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,eAAe,IAAI,cAAc,IAAI,SAAS,CAAC,OAAO,CAAC;IACxE,MAAM,EAAE,GAAG,QAAQ,KAAK,SAAS,CAAC,OAAO,CAAC;IAC1C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,IAAI,wBAAwB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChH,MAAM,aAAa,GACjB,+BAA+B,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC5F,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,CAAC,EAAE;QACtB,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,gBAAgB,QAAQ,EAAE;QACrE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iBAAiB,GACrB,mCAAmC,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QACxG,gCAAgC,CAAC;YAC/B,EAAE;YACF,SAAS;YACT,aAAa;SACd,CAAC,CAAC;IACL,MAAM,eAAe,GACnB,iCAAiC,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,IAAI,SAAS,CAAC;IAClH,OAAO;QACL,EAAE;QACF,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,aAAa;QAC7B,kBAAkB,EAAE,iBAAiB;QACrC,gBAAgB,EAAE,eAAe;KAClC,CAAC;AACJ,CAAC;AAGD,KAAK,UAAU,4BAA4B,CAAC,OAAgC;IAC1E,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;IACvD,6BAA6B,GAAG,IAAI,CAAC;IACrC,MAAM,sBAAsB,CAAC,gBAAgB,EAAE;QAC7C,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,sBAAsB,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,0BAA0B,CAAC;IAC3C,0BAA0B,GAAG,IAAI,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yBAAyB,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE;QAC7D,OAAO,EAAE,OAAO,CAAC,WAAW;QAC5B,IAAI,EAAE,OAAO,CAAC,WAAW;QACzB,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE;QACtC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE;QACpC,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,sBAAsB,EAAE;KACjC,CAAC,CAAC;IACH,yBAAyB,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,UAAU,CAAC,oCAAoC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B;IAC1C,MAAM,gBAAgB,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,6BAA6B,CAAC,QAAgB;IACrD,IAAI,cAAc,CAAC,mCAAmC,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,+BAA+B,CAAC,MAS9C;IACC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,6BAA6B,EAAE,CAAC;IACtC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,OAAgB,EAChB,WAAqB,EACrB,2BAA2D,EAAE;IAE7D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAA6B,CAAC;IACxE,MAAM,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAE,CAAC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC;IACnB,OAAO,MAAM,CAAC,KAAK,CAAC;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC;IACnB,OAAO,MAAM,CAAC,YAAY,CAAC;IAC3B,OAAO,MAAM,CAAC,UAAU,CAAC;IACzB,OAAO,MAAM,CAAC,OAAO,CAAC;IACtB,OAAO,MAAM,CAAC,KAAK,CAAC;IACpB,4FAA4F;IAC5F,oFAAoF;IACpF,OAAO,MAAM,CAAC,aAAa,CAAC;IAE5B,MAAM,YAAY,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,8CAA8C,CAAC,YAAY,EAAE,wBAAwB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,4CAA4C,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yCAAyC,CAChD,aAA0E,EAC1E,WAAmB;IAEnB,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IACzE,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAC,KAAK;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,qBAAqB,CAAC;SAChG,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,4CAA4C,CACnD,aAA0E,EAC1E,WAAmB,EACnB,WAAqB;IAErB,MAAM,KAAK,GAAG,yCAAyC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,WAAW,GAAmC,EAAE,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM;QACR,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,yCAAyC,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,qCAAqC,GAAkD;IAC3F,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,aAAa;IAC5B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,eAAe,EAAE,MAAM;IACvB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,QAAQ;CAC3B,CAAC;AAEF,MAAM,oCAAoC,GAAG,IAAI,GAAG,EAA0C,CAAC;AAE/F,SAAS,0BAA0B,CAAC,SAAiB;IACnD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB,EAAE,QAAgB;IAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,SAAiB;IAChE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,SAAiB,EAAE,WAAmB,EAAE,UAAmB;IAC1G,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,SAAS,GAAG,CAAC;IAC9F,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,IAAI,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,UAAU,EAAE,GAAG,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;IAC7F,IAAI,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,UAAU,EAAE,GAAG,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,iDAAiD,CAC9D,WAAmB,EACnB,MAAc;IAEd,MAAM,cAAc,GAAG,qCAAqC,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,oCAAoC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,oCAAoC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChG,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,KAAK,KAAK,EAAE;YAClB,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5C,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IACH,oCAAoC,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,+BAA+B,CAAC,WAAoB,EAAE,cAAwB;IAC3F,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,QAAQ,GAA0D;QACtE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE;QAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QACjC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;QACrC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;QACvC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;QACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE;QAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE;QACzC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;QACxC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE;QAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;QACzC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE;KAC9C,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;YAC5C,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9E,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtC,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;QACL,wBAAwB,EAAE,IAAI;QAC9B,8BAA8B,EAAE,IAAI;QACpC,wBAAwB,EAAE,IAAI;QAC9B,gCAAgC,EAAE,IAAI;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,MAAc;IAC3D,OAAO,WAAW,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,aAA4B,EAAE,QAAkC;IAC5F,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,UAAU,CACR,6BAA6B,QAAQ,CAAC,WAAW,WAAW,QAAQ,CAAC,eAAe,aAAa,QAAQ,CAAC,YAAY,CAAC,MAAM,sBAAsB,QAAQ,CAAC,qBAAqB,uBAAuB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,UAAU,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,UAAU,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,SAAS,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,UAAU,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,sBAAsB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,qBAAqB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,qBAAqB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,wBAAwB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,sBAAsB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,uBAAuB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAC9tB,CAAC;IACF,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,UAAU,CAAC,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,MAAc;IACxD,MAAM,QAAQ,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,6BAA6B,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,6BAA6B,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,6BAA6B,GAAG;YAC9B,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC;YACtC,MAAM;YACN,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;YAChD,GAAG,UAAU;YACb,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAClI,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,wCAAwC,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvG,MAAM,kBAAkB,GAAG,sCAAsC,CAC/D,eAAe,EACf,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EACvC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CACrC,CAAC;QACF,MAAM,QAAQ,GAA6B;YACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,MAAM;YACN,QAAQ;YACR,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;YACtC,kBAAkB,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;YAClD,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YACrC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YACzC,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM;SACtD,CAAC;QACF,6BAA6B,GAAG;YAC9B,GAAG,EAAE,QAAQ;YACb,QAAQ;SACT,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B,GAAG;YAC9B,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,OAAgB;IAahB,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,UAA0D,EAC1D,MAAc;IAEd,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,gCAAgC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,kBAAkB,IAAI,SAAS,CAAC,UAAU,CAAC;QAC/E,MAAM,GAAG,GAAI,iBAAuC,CAAC,GAAG,CAAC;QACzD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CACnB,GAAG,CAAC;gBACF,EAAE,EAAE,WAAW;gBACf,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,SAAS,EAAE,SAAS,CAAC,IAAI;gBACzB,OAAO,EAAE,MAAM;gBACf,MAAM;aACP,CAAC,CACH,CAAC;YACF,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YACxC,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;YACnC,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAClC,OAAO,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QACtC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAgB,EAChB,OAAgC,EAChC,aAA4B;IAE5B,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,IAAI,qBAAqB,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC;QACnD,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,UAAU,CAAC,sCAAsC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IACtD,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,uBAAuB,CAAC;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE;QAC9B,MAAM,EAAE,EAAE,GAAG,qBAAqB,EAAE;QACpC,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,MAAM,uBAAuB,CAAC;QAC3D,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,IAAI,qBAAqB,CAAC,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChF,UAAU,CAAC,+CAA+C,kBAAkB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAClB,YAAY,WAAW,kCAAkC,WAAW,KAAK,WAAW,EAAE,EACtF,SAAS,CAAC,eAAe,CAC1B,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,YAAY,WAAW,6DAA6D,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClI,CAAC;IACD,sBAAsB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,sBAAsB,CAAC,MAAM,CAAC;AACvC,CAAC;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAEjE,SAAS,sCAAsC,CAAC,WAAoB;IAClE,MAAM,KAAK,GAAG,CAAC,KAAc,EAAQ,EAAE;QAKrC,MAAM,WAAW,GAAG,KAA6B,CAAC;QAClD,IAAI,OAAO,WAAW,CAAC,cAAc,KAAK,UAAU,IAAI,WAAW,CAAC,sBAAsB,CAAC,KAAK,IAAI,EAAE,CAAC;YACrG,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;YAClD,WAAW,CAAC,cAAc,GAAG,KAAK,UAAU,oBAAoB,CAAgB,GAAG,UAAqB;gBACtG,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,MAAM,aAAa,GAAG,eAAe,YAAY,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,0BAA0B,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,mBAAmB,GAAG,+BAA+B,EAAE,CAAC;gBAC9D,MAAM,wBAAwB,GAAG,mBAAmB;oBAClD,CAAC,CAAC,4CAA4C,CAAC,mBAAmB,EAAE,WAAW,EAAE,WAAW,CAAC;oBAC7F,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,2BAA2B,GAAG,MAAM,iDAAiD,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACjH,IAAI,cAAc,GAAG,2BAA2B,CAAC,aAAa,EAAE,WAAW,EAAE;oBAC3E,GAAG,wBAAwB;oBAC3B,GAAG,2BAA2B;iBAC/B,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC;oBACnD,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBACH,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChE,UAAU,CAAC,sCAAsC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC1C,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChD,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9C,aAAa,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;gBAC9D,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBACvD,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;gBACtC,IAAI,mBAAmB,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;oBAClG,aAAa,CAAC,iBAAiB,EAAE,CAAC;gBACpC,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;gBACnD,CAAC;gBACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC1D,aAAa,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBACD,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAClC,uBAAuB,CAAC;oBACtB,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE;oBAC9B,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;oBAC5B,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBAEH,MAAM,sBAAsB,GAAG,MAAM,uBAAuB,CAAC;oBAC3D,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBACH,IAAI,aAAa,CAAC,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxE,UAAU,CAAC,+CAA+C,kBAAkB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACnH,CAAC;gBACD,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;oBACnC,sBAAsB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;oBACtD,WAAW,CAAC,sBAAsB,CAAC,MAAM,EAAE;wBACzC,GAAG,aAAa;wBAChB,OAAO,EAAE,WAAW;wBACpB,WAAW;wBACX,cAAc;wBACd,MAAM;qBACP,CAAC,CAAC;oBACH,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBAC1B,UAAU,CAAC,mBAAmB,WAAW,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;oBACjF,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,OAAO,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,CAAC,CAAC;YACF,WAAW,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,WAAW,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,oCAAoC,CAAC,WAAoB,EAAE,cAAwB;IAChG,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC3E,IAAI,sBAAsB,CAAC,YAAY,EAAE,CAAC;QACxC,wCAAwC,GAAG,IAAI,GAAG,EAA0C,CAAC;QAC7F,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,wCAAwC,GAAG,IAAI,GAAG,EAA0C,CAAC;QAC7F,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,6EAA6E;IAC7E,+EAA+E;IAC/E,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,wCAAwC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxF,gCAAgC,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3H,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC1B,CAAC;IACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,wCAAwC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,QAAQ,EAAE,CAAC;gBACb,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC;YAC5B,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,8BAA8B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QAED,cAAc;aACX,kBAAkB,CAAC,IAAI,CAAC;aACxB,oBAAoB,CAAC,IAAI,CAAC;aAC1B,MAAM,CAAC,KAAK,EAAE,GAAG,UAAqB,EAAE,EAAE;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,YAAY,YAAY,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;YAChF,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,wBAAwB,GAAG,4CAA4C,CAC3E,QAAQ,CAAC,aAAa,EACtB,WAAW,EACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CACzB,CAAC;YACF,MAAM,aAAa,GAAG,2BAA2B,CAC/C,OAAO,EACP,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EACxB,wBAAwB,CACzB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YACxF,MAAM,iCAAiC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC/D,WAAW,CAAC,MAAM,EAAE;gBAClB,GAAG,aAAa;gBAChB,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrC,cAAc,EAAE,aAAa;gBAC7B,MAAM;aACP,CAAC,CAAC;YACH,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,UAAU,CAAC,mBAAmB,WAAW,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,kHAAkH,CAAC;KAC/H,OAAO,CAAC,WAAW,CAAC;KACpB,kBAAkB,CAAC,KAAK,CAAC;KACzB,oBAAoB,CAAC,KAAK,CAAC;KAC3B,kBAAkB,CAAC,KAAK,CAAC;KACzB,eAAe,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChB,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,uDAAuD;IACvD,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,qBAAqB,EAAE,gFAAgF,CAAC;KAC/G,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,MAAM,CAAC,YAAY,EAAE,oDAAoD,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,uDAAuD,CAAC;KAC5E,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC;KAC7D,YAAY,EAAE,CAAC;AAElB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAC9D,0BAA0B,GAAG,IAAI,CAAC;IAClC,6BAA6B,GAAG,IAAI,CAAC;IACrC,yBAAyB,EAAE,CAAC;IAC5B,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,cAAc,GAAG,2BAA2B,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7E,IAAI,aAAa,GAAG,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAClD,MAAM,+BAA+B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC1E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,6BAA6B,GAAG,MAAM,qBAAqB,CAAC;YAC1D,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QACH,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE,cAAc,EAAE,6BAA6B,EAAE,cAAc;YAC7D,qBAAqB,EAAE,6BAA6B,EAAE,qBAAqB;SAC5E,CAAC,CAAC;QACH,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,+CAA+C,CACnD,WAAW,EACX,cAAc,EACd,cAAc,EACd,wBAAwB,EAAE,CAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,uBAAuB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjD,0BAA0B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,yBAAyB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrD,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzD,0BAA0B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzD,+BAA+B,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEjE,MAAM,wBAAwB,GAAG,4CAA4C,CAC3E,iBAAiB,CAAC,aAAa,EAC/B,WAAW,EACX,WAAW,CACZ,CAAC;IACF,cAAc,GAAG,2BAA2B,CAAC,aAAa,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC;QACnD,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,iBAAiB,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,UAAU,CAAC,sCAAsC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IAE9C,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC;QACzD,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,iBAAiB,CAAC,MAAM;QACjC,QAAQ,EAAE,wBAAwB,EAAE;KACrC,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,UAAU,CAAC,yCAAyC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IAErD,MAAM,+CAA+C,CACnD,WAAW,EACX,cAAc,EACd,iBAAiB,CAAC,MAAM,EACxB,iBAAiB,CAClB,CAAC;IAEF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,wBAAwB;QAClE,CAAC,CAAC,MAAM,kCAAkC,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAChH,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,aAAa,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,UAAU,CAAC,yCAAyC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,iBAAiB,GAAG,iCAAiC,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxG,0BAA0B,GAAG;QAC3B,KAAK,EAAE,iBAAiB,CAAC,KAAK;QAC9B,WAAW,EAAE,WAAW;QACxB,WAAW;QACX,cAAc,EAAE,EAAE,GAAG,cAAc,EAAE;QACrC,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE;QACnC,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;QAC9C,iBAAiB;KAClB,CAAC;IACF,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,uBAAuB,CAAC;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE;QAC9B,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;QAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,6BAA6B,GAAG,MAAM,qBAAqB,CAAC;QAC1D,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,WAAW;QACvB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,iBAAiB,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE;QAChE,cAAc,EAAE,6BAA6B,EAAE,cAAc;QAC7D,qBAAqB,EAAE,6BAA6B,EAAE,qBAAqB;KAC5E,CAAC,CAAC;IACH,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,EAAE;QACxE,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE;QAC9B,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;QAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,UAAU,CAAC,oCAAoC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,CAAC;QACvD,kCAAkC,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACrF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE;QACjD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;IACH,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACzD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,QAAQ;IACR,WAAW;IACX,MAAM;IACN,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,UAAU;IACV,WAAW;IACX,SAAS;IACT,KAAK;IACL,KAAK;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,cAAc;IACd,eAAe;IACf,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;IACN,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,SAAS;IACT,QAAQ;IACR,aAAa;IACb,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,OAAO;IACP,YAAY;IACZ,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,OAAO;IACP,MAAM;IACN,UAAU;IACV,WAAW;IACX,kBAAkB;IAClB,UAAU;CACX,CAAC,CAAC;AAQH,MAAM,kCAAkC,GAAqC;IAC3E,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAC;IACrD,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,MAAM;IACN,UAAU;IACV,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,eAAe;IACf,QAAQ;IACR,UAAU;IACV,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAEH,SAAS,yBAAyB,CAAC,cAAwB;IACzD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,uCAAuC,CAC9C,cAAwB;IAExB,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IACD,IACE,cAAc,CAAC,MAAM,KAAK,CAAC;QAC3B,yBAAyB,CAAC,cAAc,CAAC,CAAC,SAAS,EACnD,CAAC;QACD,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IACD,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,IAAI,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;IACJ,CAAC;IACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;IACJ,CAAC;IACD,IAAI,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;IACJ,CAAC;IACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;IACJ,CAAC;IACD,OAAO,kCAAkC,CAAC;AAC5C,CAAC;AAED,SAAS,qCAAqC,CAAC,cAAwB;IACrE,OAAO,CACL,cAAc,CAAC,MAAM,KAAK,CAAC;QAC3B,yBAAyB,CAAC,cAAc,CAAC,CAAC,SAAS,CACpD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,WAAoB,EACpB,SAA2C;IAE3C,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,2BAA2B,EAAE,CAAC;QACtE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,EAAE,yBAAyB,EAAE,GACjC,MAAM,+BAA+B,EAAE,CAAC;QAC1C,MAAM,aAAa,GACjB,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ;YAC/C,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC;YACvD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC;QAChB,yBAAyB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,8BAA8B,EAAE,CAAC;QAC5E,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,+BAA+B,EAAE,CAAC;QAC9E,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,WAAoB,EAAE,WAAmB;IAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mCAAmC,CAAC,WAAoB,EAAE,cAAwB;IACzF,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,6BAA6B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,gCAAgC,CAAC,cAAwB;IAChE,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,sCAAsC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAChD,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,qBAAqB,GACzB,uCAAuC,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,2BAA2B,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAClE,IAAI,qCAAqC,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1D,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,uBAAuB,GAAG,mCAAmC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC7F,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,oCAAoC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,wCAAwC,GAAG,IAAI,GAAG,EAA0C,CAAC;YAC7F,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,gCAAgC,CAAC,cAAc,CAAC,EAAE,CAAC;YACrD,MAAM,+BAA+B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QACD,sCAAsC,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,yBAAyB,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,wCAAwC,CAAC,CAAC;QACxI,IAAI,yBAAyB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;QACxC,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC;QAElF,MAAM,yBAAyB,GAAG,KAAK,EAAE,MAOxC,EAAE,EAAE;YACH,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtE,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;gBACzD,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,aAAa;aACd,CAAC,CAAC;YACH,MAAM,uBAAuB,CAAC;gBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,eAAe;gBACvB,UAAU,EAAE,WAAW;gBACvB,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,cAAc,EAAE,aAAa;gBAC7B,kBAAkB,EAAE,iBAAiB;gBACrC,gBAAgB,EAAE,MAAM,CAAC,eAAe;aACzC,CAAC,CAAC;YACH,OAAO;gBACL,aAAa;gBACb,iBAAiB;aAClB,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,MAAM,4BAA4B,CAAC,eAAe,CAAC,CAAC;YAC9E,0BAA0B,CAAC,iBAAiB,EAAE,QAAQ,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,IACE,KAAK,YAAY,UAAU;YAC3B,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EACrG,CAAC;YACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,eAAyB,CAAC,CAAC;YACnH,MAAM,OAAO,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;YACzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YACzE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,yBAAyB,CAAC;gBAC3E,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,cAAc,CAAC,IAAI;gBAC9B,YAAY,EAAE,cAAc,CAAC,MAAM;gBACnC,QAAQ;gBACR,OAAO,EAAE;oBACP,wBAAwB,EAAE,eAAe;iBAC1C;gBACD,eAAe,EAAE,SAAS;aAC3B,CAAC,CAAC;YACH,MAAM,0BAA0B,GAAG,MAAM,+BAA+B,CAAC;gBACvE,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,cAAc,CAAC,IAAI;gBAC/B,cAAc,EAAE,aAAa;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,cAAc,CAAC,MAAM;gBACpC,kBAAkB,EAAE,iBAAiB;gBACrC,gBAAgB,EAAE,SAAS;gBAC3B,cAAc,EAAE,6BAA6B,EAAE,cAAc;aAC9D,CAAC,CAAC;YACH,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE;gBAC3C,UAAU,EAAE,cAAc,CAAC,IAAI;gBAC/B,cAAc,EAAE,aAAa;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,kBAAkB,EAAE,iBAAiB;gBACrC,gBAAgB,EAAE,SAAS;aAC5B,CAAC,CAAC;YACH,MAAM,4BAA4B,CAAC;gBACjC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,cAAc,CAAC,IAAI;gBAC/B,cAAc,EAAE,aAAa;gBAC7B,kBAAkB,EAAE,iBAAiB;gBACrC,gBAAgB,EAAE,SAAS;aAC5B,CAAC,CAAC;YACH,qBAAqB,CAAC,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,0BAA0B,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,0BAA0B,EAAE,CAAC;gBAC/B,MAAM,WAAW,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACnE,MAAM,IAAI,GAAI,KAA2B,CAAC,IAAI,CAAC;YAC/C,MAAM,UAAU,GAAG,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,KAA8B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvI,MAAM,iBAAiB,GACrB,IAAI,KAAK,yBAAyB,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,uBAAuB,CAAC;YACtG,IAAI,iBAAiB,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBAC9D,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC7F,MAAM,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC;oBAClH,MAAM,cAAc,GAAG,oBAAoB,YAAY,GAAG,CAAC;oBAC3D,MAAM,YAAY,GAAG,MAAM,4BAA4B,CACrD,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,OAAO,EACP,wCAAwC,CACzC,CAAC;oBACF,MAAM,cAAc,GAAG,sBAAsB,CAC3C,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,YAAY,EACzB;wBACE,sBAAsB,EAAE,YAAY,CAAC,sBAAsB;wBAC3D,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;wBAC7D,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;wBAC/C,wBAAwB,EAAE,YAAY,CAAC,wBAAwB;wBAC/D,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;wBACrD,wBAAwB,EAAE,YAAY,CAAC,wBAAwB;wBAC/D,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;qBAC1D,CACF,CAAC;oBACF,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,yBAAyB,CAAC;wBAC3E,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,cAAc,CAAC,IAAI;wBAC9B,YAAY,EAAE,cAAc,CAAC,MAAM;wBACnC,QAAQ,EAAE,SAAS,CAAC,KAAK;wBACzB,OAAO,EAAE;4BACP,wBAAwB,EAAE,eAAe;4BACzC,cAAc,EAAE,IAAI,IAAI,yBAAyB;yBAClD;wBACD,eAAe,EAAE,OAAO;qBACzB,CAAC,CAAC;oBACH,MAAM,0BAA0B,GAAG,MAAM,+BAA+B,CAAC;wBACvE,OAAO,EAAE,YAAY;wBACrB,UAAU,EAAE,cAAc,CAAC,IAAI;wBAC/B,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,SAAS,CAAC,KAAK;wBAC1B,aAAa,EAAE,cAAc,CAAC,MAAM;wBACpC,kBAAkB,EAAE,iBAAiB;wBACrC,gBAAgB,EAAE,OAAO;wBACzB,cAAc,EAAE,6BAA6B,EAAE,cAAc;qBAC9D,CAAC,CAAC;oBACH,MAAM,aAAa,GAAG,UAAU;wBAC9B,CAAC,CAAC,MAAM,wBAAwB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,wCAAwC,CAAC;wBAChH,CAAC,CAAC,MAAM,2BAA2B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,wCAAwC,CAAC,CAAC;oBACtH,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE;wBAC7C,UAAU,EAAE,cAAc,CAAC,IAAI;wBAC/B,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,SAAS,CAAC,KAAK;wBAC1B,kBAAkB,EAAE,iBAAiB;wBACrC,gBAAgB,EAAE,OAAO;qBAC1B,CAAC,CAAC;oBACH,MAAM,4BAA4B,CAAC;wBACjC,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,cAAc;wBACrB,SAAS,EAAE,SAAS,CAAC,KAAK;wBAC1B,UAAU,EAAE,cAAc,CAAC,IAAI;wBAC/B,cAAc,EAAE,aAAa;wBAC7B,kBAAkB,EAAE,iBAAiB;wBACrC,gBAAgB,EAAE,OAAO;qBAC1B,CAAC,CAAC;oBACH,IAAI,UAAU,EAAE,CAAC;wBACf,UAAU,CAAC,aAAa,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,aAAa,CAAC,CAAC;oBAC5B,CAAC;oBACD,IAAI,0BAA0B,EAAE,CAAC;wBAC/B,MAAM,WAAW,CAAC,qCAAqC,CAAC,CAAC;oBAC3D,CAAC;oBACD,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;oBACnC,OAAO;gBACT,CAAC;gBACD,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE;oBACvC,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,kBAAkB,EAAE,SAAS;oBAC7B,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,MAAM,4BAA4B,CAAC;oBACjC,EAAE,EAAE,IAAI;oBACR,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,kBAAkB,EAAE,SAAS;oBAC7B,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACjC,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE;oBACvC,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,kBAAkB,EAAE,SAAS;oBAC7B,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,MAAM,4BAA4B,CAAC;oBACjC,EAAE,EAAE,IAAI;oBACR,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,kBAAkB,EAAE,SAAS;oBAC7B,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,wCAAwC,CAAC,CAAC;gBAClH,MAAM,cAAc,GAAG,sBAAsB,CAC3C,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,YAAY,EACzB;oBACE,sBAAsB,EAAE,YAAY,CAAC,sBAAsB;oBAC3D,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;oBAC7D,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;oBAC/C,wBAAwB,EAAE,YAAY,CAAC,wBAAwB;oBAC/D,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;oBACrD,wBAAwB,EAAE,YAAY,CAAC,wBAAwB;oBAC/D,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;iBAC1D,CACF,CAAC;gBACF,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,yBAAyB,CAAC;oBAC3E,OAAO,EAAE,gBAAgB;oBACzB,SAAS,EAAE,cAAc,CAAC,IAAI;oBAC9B,YAAY,EAAE,cAAc,CAAC,MAAM;oBACnC,QAAQ,EAAE,SAAS,CAAC,KAAK;oBACzB,OAAO,EAAE;wBACP,wBAAwB,EAAE,eAAe;wBACzC,cAAc,EAAE,IAAI;qBACrB;oBACD,eAAe,EAAE,OAAO;iBACzB,CAAC,CAAC;gBACH,MAAM,0BAA0B,GAAG,MAAM,+BAA+B,CAAC;oBACvE,OAAO,EAAE,gBAAgB;oBACzB,UAAU,EAAE,cAAc,CAAC,IAAI;oBAC/B,cAAc,EAAE,aAAa;oBAC7B,SAAS,EAAE,SAAS,CAAC,KAAK;oBAC1B,aAAa,EAAE,cAAc,CAAC,MAAM;oBACpC,kBAAkB,EAAE,iBAAiB;oBACrC,gBAAgB,EAAE,OAAO;oBACzB,cAAc,EAAE,6BAA6B,EAAE,cAAc;iBAC9D,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,UAAU;oBAC9B,CAAC,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,wCAAwC,CAAC;oBAC1F,CAAC,CAAC,MAAM,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,wCAAwC,CAAC,CAAC;gBAChG,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE;oBACnD,UAAU,EAAE,cAAc,CAAC,IAAI;oBAC/B,cAAc,EAAE,aAAa;oBAC7B,SAAS,EAAE,SAAS,CAAC,KAAK;oBAC1B,kBAAkB,EAAE,iBAAiB;oBACrC,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,MAAM,4BAA4B,CAAC;oBACjC,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,YAAY,CAAC,OAAO;oBAC3B,SAAS,EAAE,SAAS,CAAC,KAAK;oBAC1B,UAAU,EAAE,cAAc,CAAC,IAAI;oBAC/B,cAAc,EAAE,aAAa;oBAC7B,kBAAkB,EAAE,iBAAiB;oBACrC,gBAAgB,EAAE,OAAO;iBAC1B,CAAC,CAAC;gBACH,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,0BAA0B,EAAE,CAAC;oBAC/B,MAAM,WAAW,CAAC,qCAAqC,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;gBACnC,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,6BAA6B,EAAE,CAAC;QACtC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,yBAAyB,CAAC;YAC3E,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,cAAc,CAAC,IAAI;YAC9B,YAAY,EAAE,cAAc,CAAC,MAAM;YACnC,QAAQ,EAAE,SAAS,CAAC,eAAe;YACnC,OAAO,EAAE;gBACP,wBAAwB,EAAE,eAAe;aAC1C;YACD,eAAe,EAAE,SAAS;SAC3B,CAAC,CAAC;QACH,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE;YACtC,UAAU,EAAE,cAAc,CAAC,IAAI;YAC/B,cAAc,EAAE,aAAa;YAC7B,SAAS,EAAE,SAAS,CAAC,eAAe;YACpC,kBAAkB,EAAE,iBAAiB;YACrC,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAC;QACH,MAAM,4BAA4B,CAAC;YACjC,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,SAAS,CAAC,eAAe;YACpC,UAAU,EAAE,cAAc,CAAC,IAAI;YAC/B,cAAc,EAAE,aAAa;YAC7B,kBAAkB,EAAE,iBAAiB;YACrC,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,WAAW,EAAE,CAAC;QACpB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,gBAAgB;IAChB,uBAAuB;IACvB,kBAAkB;IAClB,6BAA6B;IAC7B,wBAAwB;CACzB,CAAC","debugId":"fb080e3e-ad71-5608-a944-ce887395e3e9"}
|